{"version":3,"sources":["./node_modules/@uirouter/core/lib-esm/common/common.js","./node_modules/@uirouter/core/lib-esm/common/coreservices.js","./node_modules/@uirouter/core/lib-esm/common/glob.js","./node_modules/@uirouter/core/lib-esm/common/hof.js","./node_modules/@uirouter/core/lib-esm/common/index.js","./node_modules/@uirouter/core/lib-esm/common/predicates.js","./node_modules/@uirouter/core/lib-esm/common/queue.js","./node_modules/@uirouter/core/lib-esm/common/strings.js","./node_modules/@uirouter/core/lib-esm/common/trace.js","./node_modules/@uirouter/core/lib-esm/globals.js","./node_modules/@uirouter/core/lib-esm/hooks/coreResolvables.js","./node_modules/@uirouter/core/lib-esm/hooks/ignoredTransition.js","./node_modules/@uirouter/core/lib-esm/hooks/invalidTransition.js","./node_modules/@uirouter/core/lib-esm/hooks/lazyLoad.js","./node_modules/@uirouter/core/lib-esm/hooks/onEnterExitRetain.js","./node_modules/@uirouter/core/lib-esm/hooks/redirectTo.js","./node_modules/@uirouter/core/lib-esm/hooks/resolve.js","./node_modules/@uirouter/core/lib-esm/hooks/updateGlobals.js","./node_modules/@uirouter/core/lib-esm/hooks/url.js","./node_modules/@uirouter/core/lib-esm/hooks/views.js","./node_modules/@uirouter/core/lib-esm/index.js","./node_modules/@uirouter/core/lib-esm/interface.js","./node_modules/@uirouter/core/lib-esm/params/index.js","./node_modules/@uirouter/core/lib-esm/params/param.js","./node_modules/@uirouter/core/lib-esm/params/paramType.js","./node_modules/@uirouter/core/lib-esm/params/paramTypes.js","./node_modules/@uirouter/core/lib-esm/params/stateParams.js","./node_modules/@uirouter/core/lib-esm/path/index.js","./node_modules/@uirouter/core/lib-esm/path/pathNode.js","./node_modules/@uirouter/core/lib-esm/path/pathUtils.js","./node_modules/@uirouter/core/lib-esm/resolve/index.js","./node_modules/@uirouter/core/lib-esm/resolve/interface.js","./node_modules/@uirouter/core/lib-esm/resolve/resolvable.js","./node_modules/@uirouter/core/lib-esm/resolve/resolveContext.js","./node_modules/@uirouter/core/lib-esm/router.js","./node_modules/@uirouter/core/lib-esm/state/index.js","./node_modules/@uirouter/core/lib-esm/state/stateBuilder.js","./node_modules/@uirouter/core/lib-esm/state/stateMatcher.js","./node_modules/@uirouter/core/lib-esm/state/stateObject.js","./node_modules/@uirouter/core/lib-esm/state/stateQueueManager.js","./node_modules/@uirouter/core/lib-esm/state/stateRegistry.js","./node_modules/@uirouter/core/lib-esm/state/stateService.js","./node_modules/@uirouter/core/lib-esm/state/targetState.js","./node_modules/@uirouter/core/lib-esm/transition/hookBuilder.js","./node_modules/@uirouter/core/lib-esm/transition/hookRegistry.js","./node_modules/@uirouter/core/lib-esm/transition/index.js","./node_modules/@uirouter/core/lib-esm/transition/interface.js","./node_modules/@uirouter/core/lib-esm/transition/rejectFactory.js","./node_modules/@uirouter/core/lib-esm/transition/transition.js","./node_modules/@uirouter/core/lib-esm/transition/transitionEventType.js","./node_modules/@uirouter/core/lib-esm/transition/transitionHook.js","./node_modules/@uirouter/core/lib-esm/transition/transitionService.js","./node_modules/@uirouter/core/lib-esm/url/index.js","./node_modules/@uirouter/core/lib-esm/url/urlConfig.js","./node_modules/@uirouter/core/lib-esm/url/urlMatcher.js","./node_modules/@uirouter/core/lib-esm/url/urlMatcherFactory.js","./node_modules/@uirouter/core/lib-esm/url/urlRouter.js","./node_modules/@uirouter/core/lib-esm/url/urlRule.js","./node_modules/@uirouter/core/lib-esm/url/urlRules.js","./node_modules/@uirouter/core/lib-esm/url/urlService.js","./node_modules/@uirouter/core/lib-esm/vanilla.js","./node_modules/@uirouter/core/lib-esm/vanilla/baseLocationService.js","./node_modules/@uirouter/core/lib-esm/vanilla/browserLocationConfig.js","./node_modules/@uirouter/core/lib-esm/vanilla/hashLocationService.js","./node_modules/@uirouter/core/lib-esm/vanilla/index.js","./node_modules/@uirouter/core/lib-esm/vanilla/injector.js","./node_modules/@uirouter/core/lib-esm/vanilla/memoryLocationConfig.js","./node_modules/@uirouter/core/lib-esm/vanilla/memoryLocationService.js","./node_modules/@uirouter/core/lib-esm/vanilla/plugins.js","./node_modules/@uirouter/core/lib-esm/vanilla/pushStateLocationService.js","./node_modules/@uirouter/core/lib-esm/vanilla/q.js","./node_modules/@uirouter/core/lib-esm/vanilla/utils.js","./node_modules/@uirouter/core/lib-esm/view/index.js","./node_modules/@uirouter/core/lib-esm/view/view.js","(webpack)/buildin/global.js","./node_modules/@fxp/fxpservices/index.js","./projects/ra-ux-web/src/common/constants.ts","./projects/ra-ux-web/src/environments/common/appsettingsGenerator.ts","./projects/ra-ux-web/src/environments/configs/appSettings.aurorasit.ts","./projects/ra-ux-web/src/environments/configs/appSettings.dev.ts","./projects/ra-ux-web/src/environments/configs/appSettings.prod.ts","./projects/ra-ux-web/src/environments/configs/appSettings.sit.ts","./projects/ra-ux-web/src/environments/configs/appSettings.uat.ts","./projects/ra-ux-web/src/routes.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+E;AAC5B;AACT;AACnC;AACP;AACA,IAAI,SAAI;AACR;AACO;AACA;AACA;AACA;AACA;AACA;AACP;AACA;AACO,iBAAiB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,8BAA8B,kBAAkB;AAChD,0CAA0C,sCAAsC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACO,wCAAwC,6CAA6C;AAC5F;AACO,cAAc,kDAAK;AACnB;AACP;AACA;AACA;AACA;AACA;AACA;AACO,iBAAiB,kDAAK;AACtB;AACP;AACA;AACA;AACA;AACA;AACA;AACO,aAAa,kDAAK;AAClB;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,8CAA8C;AAC9C,8CAA8C;AAC9C;AACA;AACO,oCAAoC,2BAA2B;AACtE;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,MAAM;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACO;AACP;AACA,gBAAgB,gDAAG;AACnB,qCAAqC,qCAAqC,EAAE,IAAI;AAChF;AACA;AACA;AACA;AACO;AACP,2BAA2B,iDAAI;AAC/B;AACA;AACO;AACP,cAAc,2DAAO;AACrB,qCAAqC,uBAAuB,EAAE,sBAAsB,0BAA0B;AAC9G;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACO;AACP;AACO;AACP,wBAAwB,2DAAO,sBAAsB;AACrD,4CAA4C,wCAAwC,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,0BAA0B;AAC1B;AACA;AACO,6BAA6B,6CAA6C,iBAAiB,EAAE,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,+BAA+B;AAC/B;AACA;AACA,+BAA+B;AAC/B;AACA;AACO,sCAAsC,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,+BAA+B;AAC/B;AACA;AACO,sCAAsC,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC,0BAA0B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,2DAAO;AAClB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO,mCAAmC,wDAAwD;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,6BAA6B,gCAAgC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,8BAA8B,iCAAiC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,kEAAkE;AAClE;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACA;AACP,4BAA4B,2BAA2B;AACvD;AACA;AACA;AACA,4BAA4B,8DAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,wBAAwB;AAClC;AACA;AACO,4BAA4B,6CAA6C,wBAAwB,EAAE,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,8BAA8B;AAC9B;AACA;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,uDAAuD,kCAAkC,EAAE,oBAAoB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iBAAiB,EAAE;AAC1E;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,qBAAqB;AACrB;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACO;AACP;AACA,QAAQ,2DAAO;AACf;AACA,SAAS,4DAAQ;AACjB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA,kDAAkD,yBAAyB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAO;AACf;AACA,6CAA6C,0BAA0B,EAAE;AACzE;AACO;AACP,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,QAAQ,gDAAG,CAAC,mDAAO;AACnB;AACA,QAAQ,gDAAG,CAAC,kDAAM;AAClB;AACA,QAAQ,gDAAG,CAAC,oDAAQ;AACpB;AACA,QAAQ,gDAAG,CAAC,sDAAU;AACtB,oBAAoB;AACpB,sBAAsB,sDAAU,EAAE,mDAAO,EAAE,kDAAM,EAAE,oDAAQ;AAC3D,uBAAuB,wCAAG,2BAA2B,uBAAuB,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iCAAiC,EAAE;AAC1F;AACA;AACO,mDAAmD,oCAAoC,UAAU,EAAE,aAAa;AAChH,wCAAwC,iCAAiC,sDAAQ,mBAAmB;AAC3G,kC;;;;;;;;;;;;;;ACjhBA;AAAA;AAAA;AAAA,gCAAgC;AAChC;AACA,EAAE;AACK;AACP,+CAA+C,+DAA+D,EAAE,IAAI;AACpH;AACA;AACA;AACA;AACA;AACoB;AACpB,wC;;;;;;;;;;;;;ACXA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;AAChB,gC;;;;;;;;;;;;;AC/EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACO,4BAA4B,wBAAwB,yBAAyB,GAAG;AACvF;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACO,+CAA+C,kCAAkC,EAAE;AAC1F;AACA;AACA,cAAc,oBAAoB,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACO,6BAA6B,oDAAoD;AACxF;AACA;AACA;AACA;AACO,yBAAyB;AAChC;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACO;AACP;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,0BAA0B,wBAAwB,oCAAoC,sBAAsB,EAAE,QAAQ,GAAG;AAChI;AACO,0BAA0B,wBAAwB,oCAAoC,sBAAsB,EAAE,SAAS,GAAG;AACjI;AACO,0BAA0B;AACjC;AACA,EAAE;AACF;AACO,2BAA2B,0BAA0B,wBAAwB,GAAG;AACvF;AACO,wBAAwB,qBAAqB,UAAU,GAAG;AAC1D;AACP,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;AAC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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA,4CAA4C,yBAAyB,EAAE;AACvE,4CAA4C,+BAA+B,EAAE,EAAE;AAC/E;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,cAAc,2DAAO;AACrB;AACA;AACA,kBAAkB,mEAAS;AAC3B;AACA,WAAW,4DAAQ,UAAU,2DAAO,uCAAuC,8DAAU;AACrF;AACA,uBAAuB,oDAAO;AAC9B,KAAK,uDAAW,EAAE,gDAAG;AACrB,KAAK,kDAAM,EAAE,gDAAG;AAChB,KAAK,qDAAS,EAAE,gDAAG;AACnB,gCAAgC,0CAA0C,EAAE;AAC5E,gCAAgC,qBAAqB,EAAE;AACvD,KAAK,wDAAY;AACjB,KAAK,gDAAG,QAAQ,gDAAQ;AACxB;AACO;AACP;AACA;AACA,YAAY,4DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+DAAW;AACnB;AACA;AACA;AACA;AACA;AACA,oDAAoD,sBAAsB,EAAE;AAC5E;AACA;AACO,yCAAyC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACK;AACA,2CAA2C,oCAAoC;AAC/E;AACA;AACA;AACA,kCAAkC,2CAA2C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,2BAA2B;AAC3B;AACA;AACO;AACP;AACA,2BAA2B,6BAA6B,gDAAQ,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,QAAQ,4DAAQ,CAAC,oDAAI,UAAU,4DAAQ;AACvC,uCAAuC,oDAAI;AAC3C,WAAW,qDAAK;AAChB;AACA,mC;;;;;;;;;;;;;ACvIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACsC;AACsB;AACkB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mEAAQ;AACnB;AACA;AACA;AACA;AACA,mBAAmB,qEAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AACT;AACpB;AACA,WAAW,yDAAK;AAChB;AACA,WAAW,yDAAK;AAChB;AACA,iCAAiC,yDAAyD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB,EAAE;AAC7D,sCAAsC,kBAAkB,EAAE;AAC1D,qCAAqC,sBAAsB,EAAE;AAC7D;AACA,mEAAmE,6CAA6C,EAAE;AAClH;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,0DAAS;AAClE;AACA;AACA;AACA;AACA;AACA,yDAAyD,0DAAS;AAClE;AACA;AACA;AACA;AACA;AACA,oBAAoB,yDAAK,yDAAyD,yDAAK,6CAA6C,yDAAK,oDAAoD,iEAAgB;AAC7M,+FAA+F,0DAAS;AACxG;AACA;AACA;AACA;AACA;AACA,iEAAiE,0DAAS,MAAM,0DAAS;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,0DAAS,MAAM,0DAAS;AACvH;AACA;AACA;AACA;AACA;AACA,yDAAyD,0DAAS;AAClE;AACA;AACA;AACA;AACA;AACA,yDAAyD,0DAAS;AAClE;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA,kCAAkC,0DAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0DAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,SAAS;AACT,mCAAmC,+DAA+D,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgB;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACiB;AACjB,iC;;;;;;;;;;;;;ACrPA;AAAA;AAAA;AAAA;AAAA;AACmD;AACZ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+DAAW;AACrC;AACA;AACA;AACA,qCAAqC,mDAAK;AAC1C;AACA,yCAAyC,mDAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;AAC3B,mC;;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACsD;AACjB;AACG;AACoB;AAC5D;AACA,wBAAwB,mDAAU,UAAU,gDAAQ;AACpD,wBAAwB,mDAAU,UAAU,iEAAU;AACtD,wBAAwB,mDAAU;AAClC,wBAAwB,mDAAU;AAClC;AACA,4BAA4B,mDAAU;AACtC,KAAK;AACL;AACO;AACP,wCAAwC;AACxC;AACA,yCAAyC,iEAAU;AACnD,mBAAmB,uDAAO;AAC1B;AACA;AACA;AACA;AACO;AACP,gBAAgB,sDAAM;AACtB,gBAAgB,+CAAO;AACvB,gBAAgB,6CAAK;AACrB;AACA;AACA,uCAAuC,mDAAU;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA,2C;;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAA;AACwC;AACgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mDAAK;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mEAAS;AACpB;AACO;AACP,wCAAwC,gBAAgB,kBAAkB;AAC1E;AACA,6C;;;;;;;;;;;;;AC5BA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,wCAAwC,0BAA0B,mBAAmB;AACrF;AACA,6C;;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mCAAmC,EAAE;AACvE,+BAA+B,yCAAyC,EAAE;AAC1E,WAAW,6DAAQ;AACnB;AACO;AACP,uCAAuC,6BAA6B,yBAAyB,EAAE,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6DAAQ;AAC3B;AACA,2CAA2C,6DAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yDAAyD,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA,oC;;;;;;;;;;;;;AC9FA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qCAAqC,cAAc;AAClG;AACA;AACA;AACA;AACO;AACP,qCAAqC,4BAA4B,uBAAuB,EAAE,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC+B;AACA;AACF;AACG;AACF;AACK;AACP;AACC;AACH;AACD;AACC;AACE;AAC5B,iC;;;;;;;;;;;;;ACbA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA,CAAC;AAC6B;AAC9B,qC;;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwB;AACK;AACC;AACF;AAC5B,iC;;;;;;;;;;;;;ACJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACuE;AAClC;AAC0D;AAC7C;AACV;AACxC;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0BAA0B;AACR;AACnB;AACA;AACA;AACA,kBAAkB,2DAAI,oCAAoC,4DAAS;AACnE,wBAAwB,oEAAS,aAAa,mBAAmB;AACjE;AACA,WAAW,6DAAM;AACjB;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA,eAAe,uEAAY;AAC3B,WAAW,6DAAM,OAAO,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oEAAS;AAClB;AACA,2BAA2B,mEAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,yDAAyD;AAClE,SAAS,2DAA2D;AACpE;AACA,kBAAkB,kEAAO;AACzB,QAAQ,mEAAQ;AAChB,sBAAsB,8BAA8B;AACpD,yBAAyB,0DAAG,UAAU,wDAAI;AAC1C,WAAW,6DAAM,iCAAiC,iDAAiD,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAS;AAC/B,kBAAkB,oEAAS;AAC3B;AACA;AACA,sBAAsB,oEAAS;AAC/B;AACA;AACA,iCAAiC;AACjC,8DAA8D,cAAc;AAC5E,mBAAmB,6DAAM;AACzB;AACA,QAAQ,6DAAM,QAAQ,mLAAmL;AACzM;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C,iCAAiC,cAAc;AAC/C,+CAA+C,iEAAiE,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C,4CAA4C,0CAA0C,EAAE,SAAS,uDAAQ;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6DAAQ;AACzB;AACA,+BAA+B,6DAAQ;AACvC;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sEAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sEAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mEAAQ;AACzB;AACA;AACA,iBAAiB,wGAAwG;AACzH;AACA;AACA,CAAC;AACgB;AACjB,iC;;;;;;;;;;;;;AC9MA;AAAA;AAAA;AAAA;AAAA;AACuD;AACG;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B,EAAE;AACxD,4BAA4B,8BAA8B,EAAE;AAC5D,6BAA6B,8BAA8B,EAAE;AAC7D,wBAAwB,gEAAgE,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAA4B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAO,cAAc,oEAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kEAAO;AACvB;AACA;AACA,yBAAyB,0DAAG;AAC5B,4CAA4C,6DAAM,uBAAuB,WAAW,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,6DAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qC;;;;;;;;;;;;;ACpJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACkG;AAC9B;AACjC;AACe;AACV;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2DAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,YAAY,oDAAS,CAAC,6DAAM,EAAE,aAAa,eAAe;AAC9G,qBAAqB,8DAAO,CAAC,0DAAG,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAS;AACtB;AACA;AACA;AACA,+BAA+B,oDAAS,CAAC,6DAAM,EAAE,aAAa;AAC9D;AACA,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAM,wBAAwB,6DAAQ;AAClD;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA,0CAA0C,6CAA6C;AACvF;AACA;AACA;AACA,gBAAgB,sDAAE;AAClB;AACA;AACA,qCAAqC,eAAe,EAAE;AACtD;AACA,eAAe,6DAAM,GAAG;AACxB;AACA;AACA,IAAI,6DAAM;AACV,kCAAkC;AAClC;AACA;AACA,SAAS;AACT,iCAAiC;AACjC;AACA;AACA,SAAS;AACT;AACA,oCAAoC,0BAA0B,EAAE;AAChE;AACA,wBAAwB,4EAAiB;AACzC,aAAa;AACb;AACA,SAAS;AACT;AACA,oCAAoC,wBAAwB,EAAE;AAC9D,oCAAoC,gCAAgC,EAAE;AACtE,gBAAgB,sDAAE;AAClB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC,qDAAqD,EAAE;AACvF;AACA,yFAAyF,mCAAmC,EAAE;AAC9H,aAAa;AACb,4BAA4B,EAAE;AAC9B,6BAA6B,EAAE;AAC/B,SAAS;AACT;AACA,oBAAoB,qDAAM;AAC1B,oBAAoB,uDAAQ;AAC5B,gBAAgB,sDAAE;AAClB,oBAAoB,qDAAM;AAC1B;AACA,SAAS;AACT;AACA;AACA,oBAAoB,uDAAQ;AAC5B,oBAAoB,uDAAQ;AAC5B,6BAA6B,aAAa,EAAE;AAC5C,oBAAoB,qDAAM;AAC1B,SAAS;AACT,KAAK;AACL;AACA;AACA,sC;;;;;;;;;;;;;AC/JA;AAAA;AAAA;AAAA;AACqD;AACrD;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C,QAAQ,6DAAM;AACd;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA,sBAAsB,gEAAS,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAM,GAAG;AACxB;AACA;AACA,CAAC;AACsB;AACvB,uC;;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2B;AACC;AAC5B,iC;;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC4D;AACrB;AACC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6DAAM,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA,qEAAqE,oBAAoB,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2DAA2D;AAC1G,0EAA0E,QAAQ,iEAAU,0BAA0B,EAAE,IAAI;AAC5H;AACA;AACA;AACA;AACA,eAAe,2DAAI,mBAAmB,0DAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAK;AACpB;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA,CAAC;AACmB;AACpB,oC;;;;;;;;;;;;;AC5EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACkH;AACrE;AACM;AACb;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2DAAI;AACxB,mBAAmB,8DAAW,2BAA2B,wDAAI,wBAAwB,qDAAM,IAAI,KAAK;AACpG;AACA;AACA;AACA,+DAA+D,YAAY,kDAAQ,iCAAiC,EAAE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ,8DAAO,qBAAqB,EAAE;AAC3E;AACA,4BAA4B,6DAAM,uBAAuB;AACzD,gEAAgE,mBAAmB,EAAE;AACrF,6DAA6D,8CAA8C,EAAE;AAC7G,4CAA4C,sDAAO;AACnD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA,uBAAuB,2DAAI,OAAO,0DAAM;AACxC,mBAAmB,6DAAM,GAAG;AAC5B;AACA;AACA,kCAAkC,yBAAyB,EAAE;AAC7D,oBAAoB,sDAAO;AAC3B,sCAAsC,uBAAuB,EAAE;AAC/D,iBAAiB,wDAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6DAAM,GAAG;AACvC;AACA,oCAAoC,2DAAI;AACxC,0BAA0B,2DAAI;AAC9B,gCAAgC,2DAAI,4CAA4C;AAChF;AACA,+BAA+B,6DAAM;AACrC,uBAAuB,kDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wDAAwD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kEAAW;AAChC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAI;AACvB;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB,2BAA2B,uBAAuB,EAAE;AAC3G;AACA;AACA,6CAA6C,0CAA0C,QAAQ,6DAAM,wBAAwB,EAAE,IAAI,EAAE;AACrI;AACA,CAAC;AACoB;AACrB,qC;;;;;;;;;;;;;ACxKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC4B;AACC;AACI;AACjC,iC;;;;;;;;;;;;;ACJA;AAAA;AAAA;AACO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qC;;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACoD;AACF;AACV;AACM;AACc;AACH;AACzD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAM;AAClB;AACA,iBAAiB,qEAAU;AAC3B,gBAAgB,4EAAiB;AACjC;AACA,iBAAiB,qEAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6DAAQ;AACnD;AACA,iBAAiB,mEAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6DAAQ;AACzB;AACA;AACA,2FAA2F,8CAA8C,EAAE;AAC3I;AACA;AACA,uDAAuD,kDAAkD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe,EAAE;AACpD;AACA;AACA;AACA;AACA,oFAAoF,uDAAQ;AAC5F;AACA;AACA;AACA;AACA;AACA,YAAY,mDAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iEAAS,+CAA+C,yDAAS;AACvG;AACA;AACA;AACA;AACA,kDAAkD,2CAA2C,aAAa,EAAE,oBAAoB;AAChI;AACA,CAAC;AACqB;AACtB,sC;;;;;;;;;;;;;AC/HA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACuE;AAC3B;AACJ;AACU;AACJ;AACJ;AACI;AACA;AACN;AACxC,YAAY,0DAAe;AAC3B;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sDAAsD,gBAAgB,EAAE,GAAG,EAAE,aAAa,oDAAK;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yBAAyB,EAAE;AAC7D,oBAAoB,sDAAO;AAC3B,kCAAkC,0BAA0B,EAAE;AAC9D,eAAe,2DAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yDAAS,sCAAsC,6BAA6B,EAAE;AAChH;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAI,aAAa,0DAAM;AAC1C,oDAAoD,gBAAgB,EAAE;AACtE,iEAAiE,qCAAqC,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA,yBAAyB,8DAAO;AAChC;AACA;AACA,0CAA0C,0DAAe;AACzD;AACA,QAAQ,mDAAK;AACb,kEAAkE;AAClE,mBAAmB,8DAAO;AAC1B,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,8CAA8C,uDAAG;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,UAAU,+BAA+B,EAAE,EAAE;AACzF;AACA;AACA;AACA,SAAS;AACT;AACA,eAAe,6DAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe,2DAAI,8BAA8B,QAAQ,8DAAO,+BAA+B,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yDAAS,mCAAmC,mBAAmB,EAAE;AACvF;AACA,2CAA2C,sCAAsC,EAAE;AACnF,oCAAoC,2BAA2B,EAAE,EAAE;AACnE;AACA,qEAAqE,0BAA0B,EAAE;AACjG;AACA,uBAAuB,2DAAI;AAC3B;AACA,gBAAgB,2DAAW;AAC3B,gFAAgF,iEAAS;AACzF;AACA,uBAAuB,sDAAU,qBAAqB,qBAAqB,EAAE;AAC7E;AACA;AACA;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA,yDAAyD,6DAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iEAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,0C;;;;;;;;;;;;;AC1MA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC4D;AAChB;AACuB;AACzB;AACY;AACF;AACR;AACS;AACJ;AACH;AACP;AACH;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yDAAQ;AAClC;AACA,yBAAyB,yDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uCAAuC;AAChF,wCAAwC,qCAAqC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAK;AAC1B;AACA,+BAA+B,sDAAW;AAC1C;AACA,2BAA2B,wDAAe;AAC1C;AACA,qCAAqC,+EAAiB;AACtD;AACA;AACA;AACA;AACA,qCAAqC,wEAAiB;AACtD;AACA;AACA;AACA;AACA,6BAA6B,wDAAS;AACtC;AACA,8BAA8B,0DAAU;AACxC;AACA,iCAAiC,kEAAa;AAC9C;AACA,gCAAgC,gEAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qEAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAU;AAC1B;AACA,6BAA6B;AAC7B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6DAAM;AAC9D;AACA;AACA,CAAC;AACmB;AACpB,kC;;;;;;;;;;;;;AC3LA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACD;AACC;AACK;AACJ;AACD;AACD;AAC9B,iC;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiH;AACjC;AAClC;AACe;AACV;AACD;AAClD;AACA,SAAS,mEAAQ;AACjB;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,sCAAsC,cAAc;AACpD;AACA;AACA;AACA;AACA,uCAAuC,8DAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2DAAI;AAChB,iCAAiC,cAAc,EAAE;AACjD;AACA;AACA;AACA;AACA,2FAA2F,kBAAkB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sDAAsD;AAC3G,4DAA4D,iBAAiB;AAC7E,2BAA2B,6DAAM,CAAC,6DAAM,CAAC,2DAAI,mBAAmB,gBAAgB,wDAAI;AACpF;AACA;AACA,+BAA+B,kBAAkB,EAAE;AACnD,oBAAoB,yDAAU,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6DAAM,GAAG;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA;AACA,6CAA6C,kDAAkD;AAC/F;AACA,oBAAoB;AACpB,sDAAsD,uCAAuC;AAC7F;AACA,oBAAoB;AACpB,oDAAoD,sCAAsC;AAC1F;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAqB;AACrE,mDAAmD,uCAAuC;AAC1F,MAAM,qDAAqD,gCAAgC;AAC3F;AACA;AACO;AACP,2BAA2B,sBAAsB;AACjD;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA,wBAAwB,6DAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uCAAuC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mEAAQ,aAAa,kEAAO,aAAa,qEAAU;AACxF;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA,6BAA6B,2DAAO;AACpC,SAAS,wDAAI,6BAA6B,YAAY,8DAAU,6CAA6C,EAAE;AAC/G,SAAS,wDAAI,8BAA8B,YAAY,8DAAU,gEAAgE,EAAE;AACnI,SAAS,wDAAI,4BAA4B,YAAY,8DAAU,2BAA2B,yBAAyB,EAAE,gBAAgB,EAAE;AACvI,SAAS,wDAAI,4BAA4B,YAAY,8DAAU,2BAA2B,mBAAmB,EAAE,4BAA4B,EAAE;AAC7I,SAAS,wDAAI,+BAA+B,YAAY,8DAAU,cAAc,uDAAQ,6BAA6B,EAAE;AACvH;AACA;AACA,2BAA2B,2DAAO;AAClC,SAAS,wDAAI,CAAC,wDAAI,SAAS,2DAAQ,qBAAqB,YAAY,8DAAU,cAAc,uDAAQ,6BAA6B,EAAE;AACnI,SAAS,wDAAI,CAAC,wDAAI,SAAS,0DAAO,qBAAqB,YAAY,8DAAU,cAAc,2DAAI,mDAAmD,EAAE;AACpJ,SAAS,wDAAI,CAAC,wDAAI,SAAS,6DAAU,qBAAqB,YAAY,8DAAU,4DAA4D,EAAE;AAC9I;AACA;AACA,0BAA0B,2DAAO;AACjC,SAAS,sDAAE,CAAC,8DAAU,iBAAiB,UAAU,EAAE;AACnD;AACA;AACA;AACA,SAAS,uDAAG,wBAAwB,6CAA6C,iEAAS,OAAO,EAAE;AACnG;AACA;AACA;AACA;AACA,gBAAgB,kEAAO,8DAA8D;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAQ,WAAW,oEAAS;AACxC;AACA,aAAa,mEAAQ,WAAW,qEAAU;AAC1C;AACA;AACA;AACA,4BAA4B,qEAAqE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,2BAA2B,+BAA+B,GAAG,EAAE,EAAE,mDAAI;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,yBAAyB,mEAAQ;AACjC;AACA;AACA;AACA,CAAC;AACuB;AACxB,wC;;;;;;;;;;;;;AC/RA;AAAA;AAAA;AAAA;AAAA;AACgD;AACN;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA,oBAAoB,mEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6DAAM;AAChC,4DAA4D,+FAA+F,EAAE;AAC7J;AACA;AACA,qIAAqI,mBAAmB,EAAE;AAC1J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;AACxB,wC;;;;;;;;;;;;;AC5DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmE;AAC5B;AACD;AACsB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA,oBAAoB,8DAAO,CAAC,8DAAO;AACnC,yCAAyC,cAAc;AACvD;AACA;AACA,sBAAsB,iDAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+DAAQ,QAAQ,oCAAoC;AACnE;AACA;AACA,oBAAoB,6DAAM;AAC1B,sCAAsC,yEAAyE,EAAE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA,YAAY,2DAAI,CAAC,6DAAM,eAAe,0DAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAU;AACzB;AACA;AACA,0CAA0C,QAAQ,mEAAQ,4BAA4B;AACtF;AACA,CAAC;AACsB;AACvB,uC;;;;;;;;;;;;;AC9GA;AAAA;AAAA;AAAA;AAAA;AACoD;AACR;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wDAAW;AAC/B;AACA,aAAa,wDAAQ;AACrB;AACA,gDAAgD,uDAAO,WAAW,oDAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,wCAAwC,gEAAgE;AACxG;AACA;AACA,6DAA6D,4DAA4D,eAAe,EAAE,GAAG,EAAE;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,KAAK;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B,6C;;;;;;;;;;;;;ACxFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC8C;AACA;AACU;AACV;AACP;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC,2BAA2B,0DAAY;AACvC,8BAA8B,oEAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oDAAoD,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAU;AACtB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAoB,EAAE;AACrE;AACA,qDAAqD,wCAAwC,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAM;AAC9B,0CAA0C,kCAAkC,EAAE;AAC9E;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA,oDAAoD,sEAAsE,eAAe,EAAE,GAAG,EAAE;AAChJ;AACA;AACA;AACA;AACA;AACA,iEAAiE,gCAAgC,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;AACzB,yC;;;;;;;;;;;;;ACzJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiJ;AAC5E;AAC7B;AACU;AACJ;AACF;AACuB;AACC;AACxB;AACJ;AACF;AACqB;AACT;AACT;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mEAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wDAAG,CAAC,8DAAO;AAC7E,QAAQ,2EAAoB,CAAC,wDAAG,gCAAgC,wDAAG;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,iCAAiC,mDAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAS;AACjC;AACA,uCAAuC,6CAA6C;AACpF;AACA,gCAAgC,mDAAK;AACrC,2BAA2B,uEAAc;AACzC;AACA,oCAAoC,wDAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAS;AAChC;AACA;AACA,uBAAuB,mEAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAS;AAChC,iCAAiC,6DAAQ;AACzC,iFAAiF,uCAAuC,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAU;AACtB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAS;AAC7B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iFAAiF;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,4BAA4B;AAC5B,wBAAwB,+DAAQ,wBAAwB,8EAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA,YAAY,mEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,wDAAwD,mEAAQ;AAChE,mBAAmB,wDAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa,uDAAQ,qCAAqC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD,iCAAiC,cAAc;AAC/C;AACA;AACA,kBAAkB,+DAAQ,UAAU,8EAAgB;AACpD,sCAAsC,2BAA2B;AACjE,kBAAkB,6DAAM,WAAW,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA,mBAAmB,sEAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,iCAAiC,mEAAS;AAC1C;AACA,mCAAmC,oEAAU;AAC7C;AACA;AACA,2BAA2B,6DAAQ;AACnC;AACA;AACA,mCAAmC,oEAAU,qDAAqD,wDAAW;AAC7G;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAU;AAC7C;AACA,2BAA2B,6DAAQ;AACnC;AACA;AACA;AACA;AACA,mBAAmB,6DAAQ;AAC3B,UAAU;AACV;AACA;AACA,QAAQ,+EAAwB,sBAAsB;AACtD;AACA,eAAe,6DAAM,uBAAuB,yBAAyB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+DAAQ,WAAW,0BAA0B;AAC/D;AACA,aAAa,oEAAS;AACtB;AACA;AACA;AACA;AACA;AACA,uCAAuC,sCAAsC;AAC7E,eAAe,mDAAK,gBAAgB,mDAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,gDAAgD;AAChD,wCAAwC;AACxC,gCAAgC;AAChC;AACA;AACA;AACA;AACA,wCAAwC;AACxC,uCAAuC;AACvC,qCAAqC;AACrC,6CAA6C;AAC7C,0CAA0C;AAC1C,sCAAsC;AACtC,kCAAkC;AAClC;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA,kBAAkB,+DAAQ,WAAW,0BAA0B;AAC/D,mBAAmB,mEAAQ,iBAAiB,kDAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oEAAS;AACtB;AACA,aAAa,oEAAS;AACtB;AACA;AACA;AACA,uCAAuC,sCAAsC;AAC7E,eAAe,mDAAK,gBAAgB,mDAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+DAAQ;AAC1B;AACA;AACA,aAAa,oEAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,6BAA6B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yDAAS;AAC9B;AACA,eAAe,sEAAa;AAC5B;AACA;AACA,CAAC;AACuB;AACxB,wC;;;;;;;;;;;;;ACnjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AACgD;AACF;AACX;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAM,GAAG,eAAe;AAC/C,wBAAwB,sDAAM,GAAG,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iEAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD,2CAA2C,sDAAM,GAAG;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD,0CAA0C,sDAAM,GAAG;AACnD;AACA;AACA;AACA,wCAAwC,6BAA6B,mEAAQ,eAAe,mEAAQ,kBAAkB;AACtH;AACA,CAAC;AACsB;AACvB,uC;;;;;;;;;;;;;AC7IA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC8E;AAC/B;AACyB;AACtB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B,EAAE;AACnE,oBAAoB,sDAAO;AAC3B,oBAAoB,uDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6DAAM;AACrC;AACA,gCAAgC,yCAAyC;AACzE,iBAAiB;AACjB,iEAAiE,8DAAmB;AACpF,yCAAyC,8DAAc;AACvD,wBAAwB;AACxB,aAAa;AACb;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA,mCAAmC,6BAA6B,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,8DAAmB;AACjE;AACA;AACA;AACA;AACA,iCAAiC,oCAAoC,EAAE;AACvE,oBAAoB,sEAAe,CAAC,0DAAO;AAC3C,oBAAoB,sDAAO;AAC3B,qCAAqC,8CAA8C,EAAE,EAAE;AACvF;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,uC;;;;;;;;;;;;;ACpHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2G;AAEjE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACO;AACP,kBAAkB,wDAAQ;AAC1B;AACA;AACA,uBAAuB,wBAAwB;AAC/C,2BAA2B,4CAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sDAAsD,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAM,uDAAuD,aAAa,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAM;AAC7B,oBAAoB,sDAAM;AAC1B;AACA;AACA;AACA,iDAAiD,8DAAmB;AACpE;AACA,8CAA8C,oDAAI;AAClD;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAM,gBAAgB,gDAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;AAC1B;AACO;AACP;AACA,uFAAuF;AACvF;AACA,uBAAuB,0DAAU;AACjC;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,wC;;;;;;;;;;;;;ACxJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4B;AACE;AACC;AACC;AACH;AACI;AACK;AACF;AACpC,iC;;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACC;AACpD,qC;;;;;;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACa;AAC8C;AACb;AACX;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACX;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sDAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAE;AACjB;AACA;AACA,yCAAyC,wEAAwE,iEAAS,KAAK;AAC/H;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAM,CAAC,sEAAe,SAAS,6BAA6B;AAC3E;AACA;AACA,CAAC;AACoB;AACrB,yC;;;;;;;;;;;;;ACpHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACwC;AACU;AACJ;AACqE;AACtD;AACF;AACR;AACD;AACK;AACX;AACE;AACN;AACW;AACQ;AACf;AACA;AAC5C;AACA,gBAAgB,wDAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6DAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wDAAW;AAC3C;AACA,qCAAqC,kDAAkD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAM,EAAE,UAAU,uDAAG,QAAQ;AACrD;AACA,qBAAqB,0DAAS;AAC9B,4BAA4B,0DAAS;AACrC;AACA,iEAAiE,8DAAmB;AACpF,QAAQ,8DAAc,yCAAyC,aAAa,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2BAA2B,8DAAmB,QAAQ,EAAE;AAC7F,sCAAsC,QAAQ,+DAAS,8CAA8C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,mBAAmB,EAAE;AAClG,QAAQ,0DAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2DAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2DAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qDAAqD;AACjF;AACA,iCAAiC,gEAAU;AAC3C,8BAA8B,gEAAU;AACxC;AACA;AACA,kCAAkC,iBAAiB;AACnD,6DAA6D,wDAAI,wBAAwB,qDAAM,IAAI;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6BAA6B,EAAE;AACrE,oBAAoB,iDAAQ;AAC5B,oBAAoB,8CAAK;AACzB,sCAAsC,oDAAK;AAC3C;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA,mBAAmB,0DAAS,gCAAgC,0DAA0D,EAAE;AACxH,mBAAmB,uEAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD,mBAAmB,uEAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C,qBAAqB,sDAAE,CAAC,+DAAU,iCAAiC,+DAAU;AAC7E;AACA;AACA,yBAAyB,2DAAI,0BAA0B,sCAAsC,EAAE;AAC/F,iCAAiC,uEAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,+BAA+B,UAAU;AACzC,iCAAiC;AACjC,gDAAgD;AAChD,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD,0BAA0B,6BAA6B;AACvD,0BAA0B,6BAA6B;AACvD,0BAA0B,YAAY;AACtC;AACA;AACA;AACA,+BAA+B,UAAU;AACzC,iCAAiC;AACjC,kDAAkD;AAClD,oDAAoD;AACpD,sDAAsD;AACtD,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAG,6BAA6B,wDAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAG,4BAA4B,wDAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAG,6BAA6B,wDAAI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA,2CAA2C,0DAAM;AACjD;AACA,iBAAiB,wDAAI;AACrB,oBAAoB,uDAAQ;AAC5B,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6DAAM,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA,UAAU;AACV;AACA,oCAAoC,0DAAS,wDAAwD,0DAAS,0BAA0B,uDAAG;AAC3I;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAW;AACrC,mCAAmC,0CAA0C,EAAE;AAC/E,oBAAoB,uDAAQ;AAC5B;AACA;AACA;AACA,qDAAqD,yBAAyB,EAAE;AAChF,uDAAuD,+BAA+B,sBAAsB,EAAE,EAAE,EAAE;AAClH,qBAAqB,kEAAW;AAChC;AACA;AACA,mBAAmB,oDAAK;AACxB,SAAS,SAAS,sDAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,kBAAkB,EAAE,SAAS,uDAAQ;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAS;AACpC,qEAAqE,+DAA+D,EAAE;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAAc;AACxC;AACA,4CAA4C,qDAAqD;AACjG;AACA;AACA,YAAY,mDAAK;AACjB;AACA;AACA,oCAAoC,8DAAmB;AACvD;AACA;AACA,YAAY,mDAAK;AACjB;AACA;AACA;AACA,oCAAoC,8DAAmB;AACvD;AACA;AACA;AACA;AACA,0CAA0C,8DAAmB;AAC7D,oCAAoC,QAAQ,6DAAQ,oBAAoB;AACxE,mBAAmB,8DAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mDAAK;AACjB,mBAAmB,6DAAQ;AAC3B;AACA,yCAAyC,8DAAmB;AAC5D,QAAQ,8DAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yDAAS;AAC5B;AACA;AACA;AACA,+DAA+D,2CAA2C,EAAE;AAC5G;AACA,oEAAoE,+BAA+B,iEAAS,yBAAyB,EAAE;AACvI;AACA,mBAAmB,yDAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,2DAAI;AACpF;AACA;AACA,kCAAkC,mEAAQ,yEAAyE,iEAAS,2CAA2C,wDAAI,wBAAwB,qDAAM,IAAI,gDAAgD,mEAAQ,iEAAiE,iEAAS;AAC/U;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB,sC;;;;;;;;;;;;;ACnqBA;AAAA;AAAA;AAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D,0CAA0C,oBAAoB,8DAAc,eAAe;AAC3F,yCAAyC,mBAAmB,8DAAc,cAAc;AACxF,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC8B;AAC/B,+C;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACkD;AACiB;AACT;AACT;AACP;AACF;AACU;AACN;AACO;AACnD;AACA,aAAa,mDAAI;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iCAAiC,8DAAmB,6CAA6C;AAC1I,uBAAuB,+DAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,+BAA+B,8BAA8B,EAAE,EAAE;AAC3H,yDAAyD,6DAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA,gBAAgB,oEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mDAAK;AACb,0CAA0C,+EAA+E;AACzH,2CAA2C,QAAQ,wDAAS,4BAA4B;AACxF,0CAA0C,mDAAmD;AAC7F,8CAA8C,uDAAuD;AACrG;AACA;AACA,0CAA0C,oEAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wDAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAS;AACrB;AACA,+CAA+C,oCAAoC,EAAE;AACrF;AACA,QAAQ,mDAAK;AACb;AACA;AACA;AACA,mBAAmB,wDAAS;AAC5B;AACA,4BAA4B,sDAAE,CAAC,8DAAW;AAC1C;AACA;AACA;AACA,mBAAmB,wDAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wDAAS;AAC5B;AACA;AACA,mBAAmB,wDAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,mBAAmB,wDAAS;AAC5B;AACA;AACA;AACA;AACA,oBAAoB,yDAAK,yDAAyD,yDAAK,6CAA6C,yDAAK,oDAAoD,kEAAU;AACvM,uDAAuD,iEAAS;AAChE;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,QAAQ,oEAAS,yCAAyC,sBAAsB,wDAAS,iBAAiB,EAAE;AAC5G;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,gDAAgD,0BAA0B,6BAA6B,GAAG;AAC1G,mDAAmD,0BAA0B,QAAQ,sEAAe,QAAQ,GAAG;AAC/G,kDAAkD;AAClD;AACA,MAAM;AACN;AACA,CAAC;AACyB;AAC1B,0C;;;;;;;;;;;;;ACtMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACwE;AAC9B;AACC;AAC+C;AAC7B;AAC8C;AACK;AAC9B;AACf;AAClB;AACQ;AACG;AACV;AACD;AAC2B;AACxC;AACuC;AACA;AAC3E;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,0BAA0B,aAAa,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4EAAoB,CAAC,wDAAG,UAAU,EAAE,wDAAG;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yEAAkB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAM;AACd;AACA;AACA,gBAAgB,kEAAU;AAC1B,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAU;AAC7B;AACA;AACA;AACA,oBAAoB,8DAAmB;AACvC,iBAAiB,+DAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAmB,qBAAqB,8DAAmB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D,0CAA0C,oBAAoB,+DAAc,eAAe;AAC3F,yCAAyC,mBAAmB,+DAAc,cAAc;AACxF,qCAAqC,qBAAqB;AAC1D,4BAA4B,yEAAmB;AAC/C;AACA,QAAQ,+DAAS;AACjB;AACA;AACA;AACA;AACA,kCAAkC,qEAAS;AAC3C,uDAAuD,iCAAiC,EAAE;AAC1F;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yFAA0B;AACxD,sBAAsB,+FAA6B;AACnD,sBAAsB,+FAA6B;AACnD;AACA,yBAAyB,gFAAsB;AAC/C;AACA,qBAAqB,mFAAkB;AACvC,uBAAuB,qFAAoB;AAC3C,sBAAsB,oFAAmB;AACzC;AACA,2BAA2B,+EAAwB;AACnD,0BAA0B,+EAAwB;AAClD,yBAAyB,+EAAwB;AACjD;AACA,wBAAwB,8EAAyB;AACjD,4BAA4B,0EAAqB;AACjD;AACA,4BAA4B,sFAAyB;AACrD;AACA,wBAAwB,oEAAiB;AACzC;AACA,uBAAuB,6EAAoB;AAC3C;AACA;AACA,CAAC;AAC4B;AAC7B,6C;;;;;;;;;;;;;AC/PA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6B;AACO;AACR;AACF;AACG;AACS;AACE;AACxC,iC;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAuC;AACS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kDAAU;AACvD;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+CAA+C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,0DAA0D;AAC1G;AACA;AACA;AACA;AACA;AACA,iCAAiC,2CAA2C;AAC5E;AACA;AACA;AACA;AACA;AACA,sCAAsC,gDAAgD;AACtF;AACA;AACA;AACA;AACA;AACA,iCAAiC,2CAA2C;AAC5E;AACA;AACA;AACA;AACA;AACA,qCAAqC,+CAA+C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA,0CAA0C,yDAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS,iDAAiD,wDAAQ;AAC9E;AACA,4CAA4C,yDAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yDAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAS;AACzB;AACA;AACA,CAAC;AACoB;AACrB,qC;;;;;;;;;;;;;AC3JA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC8G;AACjE;AACuB;AACnB;AACgB;AAC5B;AACrC;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0CAA0C;AACrF;AACA,mBAAmB,oEAAY;AAC/B;AACA;AACA,YAAY,WAAW,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,MAAM;AACrF;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA,+EAA+E,UAAU;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,GAAG;AACjB,cAAc,SAAS;AACvB,cAAc,eAAe,KAAK;AAClC;AACA,eAAe,QAAQ;AACvB;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wDAAQ;AACvC;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,oBAAoB;AACnC;AACA;AACA;AACA,gBAAgB,8BAA8B;AAC9C;AACA,kBAAkB;AAClB;AACA,gBAAgB,OAAO,YAAY;AACnC,+CAA+C,2BAA2B,WAAW,OAAO,YAAY,OAAO;AAC/G,uDAAuD,6BAA6B,WAAW,OAAO,YAAY,OAAO;AACzH;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAAI,gBAAgB,0DAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8DAAO;AAC9B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,4CAA4C,2DAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,0CAA0C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,8DAA8D,uBAAuB,qDAAO,MAAM,EAAE;AACpG,eAAe,kEAAW;AAC1B,oBAAoB,sDAAO;AAC3B,kCAAkC,oBAAoB,oEAAS,IAAI,EAAE;AACrE;AACA;AACA;AACA,oDAAoD,uBAAuB,qDAAO,QAAQ,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAO;AACvC,gCAAgC,8DAAc;AAC9C,2CAA2C,SAAS,mEAAQ,2BAA2B,EAAE;AACzF,gCAAgC,sDAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAQ;AACpC;AACA,+CAA+C,mDAAK;AACpD;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kEAAW;AAChC;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,GAAG;AACjC;AACA,QAAQ;AACR,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,gBAAgB,6DAAM,uBAAuB,wDAAI;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wCAAwC,iBAAiB;AACzD,2FAA2F,0BAA0B,EAAE,qDAAqD,yBAAyB,EAAE,yDAAyD,kCAAkC,EAAE,0BAA0B,cAAc,EAAE;AAC9U;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iCAAiC;AACjF;AACA,8BAA8B,0DAAG;AACjC,mBAAmB,0DAAG;AACtB;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAS;AACzB;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA,gBAAgB,oEAAS;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA,eAAe,6DAAM,0CAA0C,wBAAwB,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uCAAuC;AAC1F;AACA;AACA,wEAAwE,2CAA2C,EAAE;AACrH,oDAAoD,qDAAqD,EAAE,SAAS,uDAAQ;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,GAAG,aAAa,oBAAoB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B,+BAA+B,SAAS,mEAAQ,yBAAyB,EAAE;AAC3E;AACA;AACA;AACA,oBAAoB,sDAAO;AAC3B;AACA,0CAA0C,gCAAgC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,8DAA8D;AAC9D,gBAAgB,mEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAQ;AACxB;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,gBAAgB,kEAAO;AACvB,6BAA6B,0DAAG;AAChC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kEAAO;AACxB;AACA;AACA;AACA;AACA,0BAA0B,0DAAG;AAC7B,+CAA+C,6BAA6B,EAAE;AAC9E,SAAS;AACT,oBAAoB,uDAAQ;AAC5B,oBAAoB,sDAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB,sC;;;;;;;;;;;;;ACrhBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC6E;AACnC;AACC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6CAAK,WAAW,+CAAO;AAC1C;AACA;AACA,mBAAmB,6CAAK,WAAW,+CAAO;AAC1C;AACA;AACA,mBAAmB,6CAAK,WAAW,+CAAO;AAC1C;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8DAA8D;AAC/G;AACA,qDAAqD,kEAAkE;AACvH;AACA,4CAA4C,yDAAyD;AACrG;AACA;AACA;AACA;AACA,QAAQ,sDAAM,QAAQ,aAAa,sDAAU,SAAS,6CAAK,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS,iBAAiB,EAAE;AAChE,4BAA4B;AAC5B,mBAAmB,sDAAU,mDAAmD,sDAAM;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wDAAQ;AACrB;AACA;AACA,QAAQ,uDAAO,CAAC,sDAAU;AAC1B,gBAAgB,0DAAU;AAC1B,oCAAoC,yDAAS,kBAAkB,0DAAU;AACzE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B,6C;;;;;;;;;;;;;ACtGA;AAAA;AAAA;AAAA;AAAA;AACiD;AACN;AAC3C;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0CAA0C;AAC9E;AACA,0CAA0C,gDAAgD;AAC1F;AACA,gDAAgD,sDAAsD;AACtG;AACA,0CAA0C,gDAAgD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uDAAuD;AAClG;AACA,qCAAqC,iDAAiD;AACtF;AACA,kCAAkC,8CAA8C;AAChF;AACA,0CAA0C,sDAAsD;AAChG;AACA,0DAA0D,sEAAsE;AAChI,kCAAkC,uDAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACoB;AACrB,qC;;;;;;;;;;;;;ACvIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC0C;AAC6B;AACnB;AACR;AACO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8DAAW;AACjC,uBAAuB,2DAAO;AAC9B,aAAa,2DAAQ,oBAAoB,uCAAuC,EAAE;AAClF,aAAa,sDAAE,CAAC,sDAAU,qBAAqB,6CAA6C,EAAE;AAC9F,wCAAwC,6CAA6C,EAAE;AACvF,aAAa,sDAAE,4BAA4B,yCAAyC,EAAE;AACtF,aAAa,6DAAU,oBAAoB,wCAAwC,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D,wCAAwC;AACxC;AACA;AACA;AACA;AACA,YAAY,mEAAQ;AACpB;AACA,YAAY,sDAAE,CAAC,sDAAU;AACzB,yCAAyC,8BAA8B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,yBAAyB,EAAE;AACvG;AACA;AACA,4DAA4D,yBAAyB,EAAE;AACvF;AACA;AACA,uBAAuB;AACvB,eAAe,6DAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA;AACA,uBAAuB;AACvB,eAAe,6DAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,IAAI,wBAAwB,+CAA+C,EAAE;AAC1H;AACA,uBAAuB,mEAAQ;AAC/B,oDAAoD,8BAA8B;AAClF,uBAAuB;AACvB,eAAe,6DAAM;AACrB;AACA,+CAA+C,kEAAkE,QAAQ,oEAAS,WAAW,EAAE,EAAE;AACjJ;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE,kCAAkC,uDAAQ;AAC1C;AACA;AACA,CAAC;AACsB;AACvB,mC;;;;;;;;;;;;;ACvMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;AACG;AACuC;AACtC;AAC3C;AACA,oCAAoC,8CAA8C;AAClF;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gDAAgD,sDAAU;AAC1D;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAU,cAAc,wDAAQ,cAAc,kDAAE,CAAC,kDAAW,eAAe,kDAAW;AAC/F;AACA;AACA,WAAW,0DAAU,sBAAsB,mDAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB,uBAAuB,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,mDAAG;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uDAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,UAAU,uBAAuB,EAAE,EAAE;AAC9F;AACA;AACA;AACA,SAAS;AACT,oDAAoD,qBAAqB,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACpB,oC;;;;;;;;;;;;;AC5VA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACpB;AACE;AACD;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4CAA4C;AAC7E;AACA;AACA;AACA,iFAAiF,iBAAiB;AAClG;AACA;AACA;AACA,mCAAmC,8CAA8C;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4CAA4C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wDAAwD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,0BAA0B,uDAAO;AACjC,aAAa,gDAAQ,qBAAqB,qCAAqC,EAAE;AACjF,aAAa,kDAAW,wBAAwB,4DAA4D,EAAE;AAC9G,aAAa,kDAAE,CAAC,kDAAW,sBAAsB,2EAA2E,EAAE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,wBAAwB,EAAE;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sDAAM,EAAE,qBAAqB,YAAY;AACvD;AACA,0CAA0C,2CAA2C;AACrF;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB,sC;;;;;;;;;;;;;ACpQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACgC;AAChC,mC;;;;;;;;;;;;;ACFA;AAAA;AAAA;AAAA;AAAA;AACkE;AACV;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gDAAgD,gBAAgB,EAAE,EAAE;AAC7G,iCAAiC,QAAQ,uDAAQ,oBAAoB;AACrE,iCAAiC,QAAQ,uDAAQ,oBAAoB;AACrE,mCAAmC,QAAQ,wDAAS,CAAC,uDAAQ,uBAAuB;AACpF,yBAAyB,4CAAI;AAC7B,wBAAwB,4CAAI;AAC5B;AACA;AACA,iCAAiC,gBAAgB;AACjD,YAAY,yDAAS;AACrB;AACA;AACA,uDAAuD,YAAY,WAAW,EAAE,EAAE;AAClF;AACA;AACA,eAAe,uDAAQ;AACvB;AACA;AACA;AACA;AACA,4BAA4B,QAAQ,0DAAU,uBAAuB;AACrE;AACA;AACA,QAAQ,wDAAQ;AAChB;AACA;AACA,CAAC;AAC+B;AAChC,+C;;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AACA;AAC8D;AAC9D;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAS;AACxB;AACA;AACA,YAAY,oEAAS;AACrB;AACA,YAAY,sEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,CAAC;AACgC;AACjC,iD;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AAC8C;AACe;AAC7D;AACA;AACA;AACA;AACA;AACA,QAAQ,4CAAI;AACZ;AACA;AACA;AACA,eAAe,2DAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4CAAI;AACZ;AACA;AACA,CAAC,CAAC,yEAAoB;AACS;AAC/B,+C;;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoB;AACO;AACW;AACA;AACE;AACG;AACJ;AACC;AAChB;AACE;AAC1B,iC;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAC8F;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,UAAU;AACV;AACO;AACP;AACA,0BAA0B,sBAAsB,EAAE;AAClD;AACA,0BAA0B,oCAAoC,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA,+EAA+E,aAAa,SAAS,EAAE;AACvG;AACA;AACA,kBAAkB,4DAAM,GAAG,uBAAuB;AAClD;AACA,0BAA0B,qEAAe,iBAAiB,gCAAgC,EAAE,kBAAkB,kDAAkD,EAAE;AAClK,gEAAgE,eAAe,EAAE;AACjF,YAAY,gEAAU;AACtB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kEAAY;AACzB;AACA;AACA;AACA,YAAY,6DAAO;AACnB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,oC;;;;;;;;;;;;;AC7FA;AAAA;AAAA;AAAA;AAAiD;AACT;AACxC;AACA;AACA;AACA;AACA,uBAAuB,mDAAI;AAC3B;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAoB;AACrD,qCAAqC,wBAAwB;AAC7D,iCAAiC,oBAAoB;AACrD,qCAAqC,wBAAwB;AAC7D,sCAAsC,cAAc;AACpD,6CAA6C,SAAS,oEAAS,6DAA6D;AAC5H;AACA;AACA,CAAC;AAC+B;AAChC,gD;;;;;;;;;;;;;ACtBA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AAC6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,yEAAoB;AACW;AACjC,iD;;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACgE;AACJ;AACZ;AACsB;AACN;AACF;AACvB;AACd;AACyB;AAC3C;AACP,IAAI,6DAAQ,aAAa,mDAAS;AAClC,IAAI,6DAAQ,MAAM,qCAAE;AACpB,YAAY,+BAA+B,qCAAE,aAAa,mDAAS,wBAAwB,aAAa,EAAE;AAC1G;AACA;AACO,yBAAyB,oEAAqB,oCAAoC,wEAAmB,EAAE,4EAAqB;AACnI;AACO,8BAA8B,oEAAqB,oCAAoC,kFAAwB,EAAE,4EAAqB;AAC7I;AACO,2BAA2B,oEAAqB,kCAAkC,4EAAqB,EAAE,0EAAoB;AACpI,mC;;;;;;;;;;;;;ACrBA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AAC4D;AACiB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4CAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAoB;AACnC;AACA;AACA;AACA,iBAAiB,0DAAU,YAAY;AACvC,eAAe,yDAAS,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4CAAI;AACZ;AACA;AACA,CAAC,CAAC,yEAAoB;AACc;AACpC,oD;;;;;;;;;;;;;AC3EA;AAAA;AAAA;AAAA;AACoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,0BAA0B,gDAAgD,qBAAqB,EAAE,EAAE,EAAE;AACrG;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,YAAY,6DAAO;AACnB;AACA;AACA,YAAY,8DAAQ;AACpB;AACA,8DAA8D;AAC9D,kEAAkE,2CAA2C,UAAU,qBAAqB,EAAE,EAAE,EAAE,EAAE;AACpJ;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB,aAAa;AACb;AACA,KAAK;AACL;AACA,6B;;;;;;;;;;;;;ACtDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2F;AACpF;AACP;AACA;AACA;AACA;AACA,aAAa,uDAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,gBAAgB,gDAAQ;AACxB,aAAa,kDAAU;AACvB,oCAAoC;AACpC;AACO;AACP,sCAAsC,gBAAgB;AACtD,aAAa,yDAAS;AACtB,aAAa,0DAAU;AACvB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uDAAO;AAC1B,wCAAwC,wBAAwB,EAAE;AAClE,KAAK;AACL,gBAAgB,+CAAO;AACvB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,iC;;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAuB;AACvB,iC;;;;;;;;;;;;;ACDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiF;AACrC;AACa;AACjB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ,2DAAI,kCAAkC,gDAAgD,EAAE,EAAE,EAAE;AAClJ,6CAA6C,uBAAuB,EAAE;AACtE,6CAA6C,2BAA2B,EAAE;AAC1E;AACA;AACA,oCAAoC,QAAQ,iEAAU,6BAA6B;AACnF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA,wDAAwD;AACxD,kCAAkC,mEAAQ,4CAA4C;AACtF;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,kDAAkD;AAClD;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,0FAA0F,sBAAsB,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mDAAK;AACb,QAAQ,iEAAU;AAClB;AACA;AACA,QAAQ,mDAAK;AACb;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB,EAAE,SAAS,yDAAU,IAAI;AAC7G;AACA,oEAAoE;AACpE;AACA;AACA,iDAAiD,yEAAyE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yDAAK,0CAA0C,kDAAkD,EAAE;AAC9H;AACA;AACA;AACA;AACA;AACA,qEAAqE,WAAW;AAChF,wEAAwE;AACxE;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,yBAAyB,EAAE;AAC/F;AACA,uCAAuC,SAAS,8DAAO,6BAA6B,EAAE;AACtF,wCAAwC,UAAU,4CAA4C,EAAE,EAAE;AAClG;AACA;AACA,+CAA+C,sBAAsB,EAAE;AACvE,QAAQ,mDAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mDAAK;AACb;AACA,gDAAgD,6DAA6D;AAC7G;AACA,YAAY,mDAAK;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAK;AACrB;AACA;AACA,YAAY,mDAAK;AACjB,YAAY,iEAAU;AACtB;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,iCAAiC,wDAAI;AACrC;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,oCAAoC,wDAAI,iBAAiB,wDAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qDAAqD,WAAW,EAAE;AAC3E,SAAS,qDAAqD,YAAY,EAAE;AAC5E,SAAS,qDAAqD,cAAc;AAC5E,SAAS,qDAAqD,gBAAgB;AAC9E;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6DAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,CAAC;AACsB;AACvB,gC;;;;;;;;;;;;AClSA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8B;;AAEA;AACA;AACA;AACA,wC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sEAAsE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA,CAAC,6DAA6D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;AACjE;AACA;AACA;AACA;AACA,CAAC,gEAAgE;AACjE;AACA;AACA;AACA;AACA;AACA,CAAC,qFAAqF;AACtF;AACA;AACA;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","file":"routes.bundle.js","sourcesContent":["/**\n * Random utility functions used in the UI-Router code\n *\n * These functions are exported, but are subject to change without notice.\n *\n * @preferred @publicapi @module common\n */ /** */\nimport { isFunction, isString, isArray, isRegExp, isDate } from './predicates';\nimport { all, any, prop, curry, not } from './hof';\nimport { services } from './coreservices';\nexport var root = (typeof self === 'object' && self.self === self && self) ||\n (typeof global === 'object' && global.global === global && global) ||\n this;\nvar angular = root.angular || {};\nexport var fromJson = angular.fromJson || JSON.parse.bind(JSON);\nexport var toJson = angular.toJson || JSON.stringify.bind(JSON);\nexport var forEach = angular.forEach || _forEach;\nexport var extend = Object.assign || _extend;\nexport var equals = angular.equals || _equals;\nexport function identity(x) {\n return x;\n}\nexport function noop() { }\n/**\n * Builds proxy functions on the `to` object which pass through to the `from` object.\n *\n * For each key in `fnNames`, creates a proxy function on the `to` object.\n * The proxy function calls the real function on the `from` object.\n *\n *\n * #### Example:\n * This example creates an new class instance whose functions are prebound to the new'd object.\n * ```js\n * class Foo {\n * constructor(data) {\n * // Binds all functions from Foo.prototype to 'this',\n * // then copies them to 'this'\n * bindFunctions(Foo.prototype, this, this);\n * this.data = data;\n * }\n *\n * log() {\n * console.log(this.data);\n * }\n * }\n *\n * let myFoo = new Foo([1,2,3]);\n * var logit = myFoo.log;\n * logit(); // logs [1, 2, 3] from the myFoo 'this' instance\n * ```\n *\n * #### Example:\n * This example creates a bound version of a service function, and copies it to another object\n * ```\n *\n * var SomeService = {\n * this.data = [3, 4, 5];\n * this.log = function() {\n * console.log(this.data);\n * }\n * }\n *\n * // Constructor fn\n * function OtherThing() {\n * // Binds all functions from SomeService to SomeService,\n * // then copies them to 'this'\n * bindFunctions(SomeService, this, SomeService);\n * }\n *\n * let myOtherThing = new OtherThing();\n * myOtherThing.log(); // logs [3, 4, 5] from SomeService's 'this'\n * ```\n *\n * @param source A function that returns the source object which contains the original functions to be bound\n * @param target A function that returns the target object which will receive the bound functions\n * @param bind A function that returns the object which the functions will be bound to\n * @param fnNames The function names which will be bound (Defaults to all the functions found on the 'from' object)\n * @param latebind If true, the binding of the function is delayed until the first time it's invoked\n */\nexport function createProxyFunctions(source, target, bind, fnNames, latebind) {\n if (latebind === void 0) { latebind = false; }\n var bindFunction = function (fnName) { return source()[fnName].bind(bind()); };\n var makeLateRebindFn = function (fnName) {\n return function lateRebindFunction() {\n target[fnName] = bindFunction(fnName);\n return target[fnName].apply(null, arguments);\n };\n };\n fnNames = fnNames || Object.keys(source());\n return fnNames.reduce(function (acc, name) {\n acc[name] = latebind ? makeLateRebindFn(name) : bindFunction(name);\n return acc;\n }, target);\n}\n/**\n * prototypal inheritance helper.\n * Creates a new object which has `parent` object as its prototype, and then copies the properties from `extra` onto it\n */\nexport var inherit = function (parent, extra) { return extend(Object.create(parent), extra); };\n/** Given an array, returns true if the object is found in the array, (using indexOf) */\nexport var inArray = curry(_inArray);\nexport function _inArray(array, obj) {\n return array.indexOf(obj) !== -1;\n}\n/**\n * Given an array, and an item, if the item is found in the array, it removes it (in-place).\n * The same array is returned\n */\nexport var removeFrom = curry(_removeFrom);\nexport function _removeFrom(array, obj) {\n var idx = array.indexOf(obj);\n if (idx >= 0)\n array.splice(idx, 1);\n return array;\n}\n/** pushes a values to an array and returns the value */\nexport var pushTo = curry(_pushTo);\nexport function _pushTo(arr, val) {\n return arr.push(val), val;\n}\n/** Given an array of (deregistration) functions, calls all functions and removes each one from the source array */\nexport var deregAll = function (functions) {\n return functions.slice().forEach(function (fn) {\n typeof fn === 'function' && fn();\n removeFrom(functions, fn);\n });\n};\n/**\n * Applies a set of defaults to an options object. The options object is filtered\n * to only those properties of the objects in the defaultsList.\n * Earlier objects in the defaultsList take precedence when applying defaults.\n */\nexport function defaults(opts) {\n var defaultsList = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n defaultsList[_i - 1] = arguments[_i];\n }\n var defaultVals = extend.apply(void 0, [{}].concat(defaultsList.reverse()));\n return extend(defaultVals, pick(opts || {}, Object.keys(defaultVals)));\n}\n/** Reduce function that merges each element of the list into a single object, using extend */\nexport var mergeR = function (memo, item) { return extend(memo, item); };\n/**\n * Finds the common ancestor path between two states.\n *\n * @param {Object} first The first state.\n * @param {Object} second The second state.\n * @return {Array} Returns an array of state names in descending order, not including the root.\n */\nexport function ancestors(first, second) {\n var path = [];\n // tslint:disable-next-line:forin\n for (var n in first.path) {\n if (first.path[n] !== second.path[n])\n break;\n path.push(first.path[n]);\n }\n return path;\n}\n/**\n * Return a copy of the object only containing the whitelisted properties.\n *\n * #### Example:\n * ```\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = pick(foo, ['a', 'b']); // { a: 1, b: 2 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the whitelisted property names\n */\nexport function pick(obj, propNames) {\n var objCopy = {};\n for (var _prop in obj) {\n if (propNames.indexOf(_prop) !== -1) {\n objCopy[_prop] = obj[_prop];\n }\n }\n return objCopy;\n}\n/**\n * Return a copy of the object omitting the blacklisted properties.\n *\n * @example\n * ```\n *\n * var foo = { a: 1, b: 2, c: 3 };\n * var ab = omit(foo, ['a', 'b']); // { c: 3 }\n * ```\n * @param obj the source object\n * @param propNames an Array of strings, which are the blacklisted property names\n */\nexport function omit(obj, propNames) {\n return Object.keys(obj)\n .filter(not(inArray(propNames)))\n .reduce(function (acc, key) { return ((acc[key] = obj[key]), acc); }, {});\n}\n/**\n * Maps an array, or object to a property (by name)\n */\nexport function pluck(collection, propName) {\n return map(collection, prop(propName));\n}\n/** Filters an Array or an Object's properties based on a predicate */\nexport function filter(collection, callback) {\n var arr = isArray(collection), result = arr ? [] : {};\n var accept = arr ? function (x) { return result.push(x); } : function (x, key) { return (result[key] = x); };\n forEach(collection, function (item, i) {\n if (callback(item, i))\n accept(item, i);\n });\n return result;\n}\n/** Finds an object from an array, or a property of an object, that matches a predicate */\nexport function find(collection, callback) {\n var result;\n forEach(collection, function (item, i) {\n if (result)\n return;\n if (callback(item, i))\n result = item;\n });\n return result;\n}\n/** Given an object, returns a new object, where each property is transformed by the callback function */\nexport var mapObj = map;\n/** Maps an array or object properties using a callback function */\nexport function map(collection, callback, target) {\n target = target || (isArray(collection) ? [] : {});\n forEach(collection, function (item, i) { return (target[i] = callback(item, i)); });\n return target;\n}\n/**\n * Given an object, return its enumerable property values\n *\n * @example\n * ```\n *\n * let foo = { a: 1, b: 2, c: 3 }\n * let vals = values(foo); // [ 1, 2, 3 ]\n * ```\n */\nexport var values = function (obj) { return Object.keys(obj).map(function (key) { return obj[key]; }); };\n/**\n * Reduce function that returns true if all of the values are truthy.\n *\n * @example\n * ```\n *\n * let vals = [ 1, true, {}, \"hello world\"];\n * vals.reduce(allTrueR, true); // true\n *\n * vals.push(0);\n * vals.reduce(allTrueR, true); // false\n * ```\n */\nexport var allTrueR = function (memo, elem) { return memo && elem; };\n/**\n * Reduce function that returns true if any of the values are truthy.\n *\n * * @example\n * ```\n *\n * let vals = [ 0, null, undefined ];\n * vals.reduce(anyTrueR, true); // false\n *\n * vals.push(\"hello world\");\n * vals.reduce(anyTrueR, true); // true\n * ```\n */\nexport var anyTrueR = function (memo, elem) { return memo || elem; };\n/**\n * Reduce function which un-nests a single level of arrays\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport var unnestR = function (memo, elem) { return memo.concat(elem); };\n/**\n * Reduce function which recursively un-nests all arrays\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * input.reduce(unnestR, []) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport var flattenR = function (memo, elem) {\n return isArray(elem) ? memo.concat(elem.reduce(flattenR, [])) : pushR(memo, elem);\n};\n/**\n * Reduce function that pushes an object to an array, then returns the array.\n * Mostly just for [[flattenR]] and [[uniqR]]\n */\nexport function pushR(arr, obj) {\n arr.push(obj);\n return arr;\n}\n/** Reduce function that filters out duplicates */\nexport var uniqR = function (acc, token) { return (inArray(acc, token) ? acc : pushR(acc, token)); };\n/**\n * Return a new array with a single level of arrays unnested.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * unnest(input) // [ \"a\", \"b\", \"c\", \"d\", [ \"double, \"nested\" ] ]\n * ```\n */\nexport var unnest = function (arr) { return arr.reduce(unnestR, []); };\n/**\n * Return a completely flattened version of an array.\n *\n * @example\n * ```\n *\n * let input = [ [ \"a\", \"b\" ], [ \"c\", \"d\" ], [ [ \"double\", \"nested\" ] ] ];\n * flatten(input) // [ \"a\", \"b\", \"c\", \"d\", \"double, \"nested\" ]\n * ```\n */\nexport var flatten = function (arr) { return arr.reduce(flattenR, []); };\n/**\n * Given a .filter Predicate, builds a .filter Predicate which throws an error if any elements do not pass.\n * @example\n * ```\n *\n * let isNumber = (obj) => typeof(obj) === 'number';\n * let allNumbers = [ 1, 2, 3, 4, 5 ];\n * allNumbers.filter(assertPredicate(isNumber)); //OK\n *\n * let oneString = [ 1, 2, 3, 4, \"5\" ];\n * oneString.filter(assertPredicate(isNumber, \"Not all numbers\")); // throws Error(\"\"Not all numbers\"\");\n * ```\n */\nexport var assertPredicate = assertFn;\n/**\n * Given a .map function, builds a .map function which throws an error if any mapped elements do not pass a truthyness test.\n * @example\n * ```\n *\n * var data = { foo: 1, bar: 2 };\n *\n * let keys = [ 'foo', 'bar' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // values is [1, 2]\n *\n * let keys = [ 'foo', 'bar', 'baz' ]\n * let values = keys.map(assertMap(key => data[key], \"Key not found\"));\n * // throws Error(\"Key not found\")\n * ```\n */\nexport var assertMap = assertFn;\nexport function assertFn(predicateOrMap, errMsg) {\n if (errMsg === void 0) { errMsg = 'assert failure'; }\n return function (obj) {\n var result = predicateOrMap(obj);\n if (!result) {\n throw new Error(isFunction(errMsg) ? errMsg(obj) : errMsg);\n }\n return result;\n };\n}\n/**\n * Like _.pairs: Given an object, returns an array of key/value pairs\n *\n * @example\n * ```\n *\n * pairs({ foo: \"FOO\", bar: \"BAR }) // [ [ \"foo\", \"FOO\" ], [ \"bar\": \"BAR\" ] ]\n * ```\n */\nexport var pairs = function (obj) { return Object.keys(obj).map(function (key) { return [key, obj[key]]; }); };\n/**\n * Given two or more parallel arrays, returns an array of tuples where\n * each tuple is composed of [ a[i], b[i], ... z[i] ]\n *\n * @example\n * ```\n *\n * let foo = [ 0, 2, 4, 6 ];\n * let bar = [ 1, 3, 5, 7 ];\n * let baz = [ 10, 30, 50, 70 ];\n * arrayTuples(foo, bar); // [ [0, 1], [2, 3], [4, 5], [6, 7] ]\n * arrayTuples(foo, bar, baz); // [ [0, 1, 10], [2, 3, 30], [4, 5, 50], [6, 7, 70] ]\n * ```\n */\nexport function arrayTuples() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (args.length === 0)\n return [];\n var maxArrayLen = args.reduce(function (min, arr) { return Math.min(arr.length, min); }, 9007199254740991); // aka 2^53 − 1 aka Number.MAX_SAFE_INTEGER\n var result = [];\n var _loop_1 = function (i) {\n // This is a hot function\n // Unroll when there are 1-4 arguments\n switch (args.length) {\n case 1:\n result.push([args[0][i]]);\n break;\n case 2:\n result.push([args[0][i], args[1][i]]);\n break;\n case 3:\n result.push([args[0][i], args[1][i], args[2][i]]);\n break;\n case 4:\n result.push([args[0][i], args[1][i], args[2][i], args[3][i]]);\n break;\n default:\n result.push(args.map(function (array) { return array[i]; }));\n break;\n }\n };\n for (var i = 0; i < maxArrayLen; i++) {\n _loop_1(i);\n }\n return result;\n}\n/**\n * Reduce function which builds an object from an array of [key, value] pairs.\n *\n * Each iteration sets the key/val pair on the memo object, then returns the memo for the next iteration.\n *\n * Each keyValueTuple should be an array with values [ key: string, value: any ]\n *\n * @example\n * ```\n *\n * var pairs = [ [\"fookey\", \"fooval\"], [\"barkey\", \"barval\"] ]\n *\n * var pairsToObj = pairs.reduce((memo, pair) => applyPairs(memo, pair), {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n *\n * // Or, more simply:\n * var pairsToObj = pairs.reduce(applyPairs, {})\n * // pairsToObj == { fookey: \"fooval\", barkey: \"barval\" }\n * ```\n */\nexport function applyPairs(memo, keyValTuple) {\n var key, value;\n if (isArray(keyValTuple))\n key = keyValTuple[0], value = keyValTuple[1];\n if (!isString(key))\n throw new Error('invalid parameters to applyPairs');\n memo[key] = value;\n return memo;\n}\n/** Get the last element of an array */\nexport function tail(arr) {\n return (arr.length && arr[arr.length - 1]) || undefined;\n}\n/**\n * shallow copy from src to dest\n */\nexport function copy(src, dest) {\n if (dest)\n Object.keys(dest).forEach(function (key) { return delete dest[key]; });\n if (!dest)\n dest = {};\n return extend(dest, src);\n}\n/** Naive forEach implementation works with Objects or Arrays */\nfunction _forEach(obj, cb, _this) {\n if (isArray(obj))\n return obj.forEach(cb, _this);\n Object.keys(obj).forEach(function (key) { return cb(obj[key], key); });\n}\nexport function _extend(toObj) {\n for (var i = 1; i < arguments.length; i++) {\n var obj = arguments[i];\n if (!obj)\n continue;\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; j++) {\n toObj[keys[j]] = obj[keys[j]];\n }\n }\n return toObj;\n}\nfunction _equals(o1, o2) {\n if (o1 === o2)\n return true;\n if (o1 === null || o2 === null)\n return false;\n if (o1 !== o1 && o2 !== o2)\n return true; // NaN === NaN\n var t1 = typeof o1, t2 = typeof o2;\n if (t1 !== t2 || t1 !== 'object')\n return false;\n var tup = [o1, o2];\n if (all(isArray)(tup))\n return _arraysEq(o1, o2);\n if (all(isDate)(tup))\n return o1.getTime() === o2.getTime();\n if (all(isRegExp)(tup))\n return o1.toString() === o2.toString();\n if (all(isFunction)(tup))\n return true; // meh\n var predicates = [isFunction, isArray, isDate, isRegExp];\n if (predicates.map(any).reduce(function (b, fn) { return b || !!fn(tup); }, false))\n return false;\n var keys = {};\n // tslint:disable-next-line:forin\n for (var key in o1) {\n if (!_equals(o1[key], o2[key]))\n return false;\n keys[key] = true;\n }\n for (var key in o2) {\n if (!keys[key])\n return false;\n }\n return true;\n}\nfunction _arraysEq(a1, a2) {\n if (a1.length !== a2.length)\n return false;\n return arrayTuples(a1, a2).reduce(function (b, t) { return b && _equals(t[0], t[1]); }, true);\n}\n// issue #2676\nexport var silenceUncaughtInPromise = function (promise) { return promise.catch(function (e) { return 0; }) && promise; };\nexport var silentRejection = function (error) { return silenceUncaughtInPromise(services.$q.reject(error)); };\n//# sourceMappingURL=common.js.map","var noImpl = function (fnname) { return function () {\n throw new Error(\"No implementation for \" + fnname + \". The framework specific code did not implement this method.\");\n}; };\nexport var makeStub = function (service, methods) {\n return methods.reduce(function (acc, key) { return ((acc[key] = noImpl(service + \".\" + key + \"()\")), acc); }, {});\n};\nvar services = {\n $q: undefined,\n $injector: undefined,\n};\nexport { services };\n//# sourceMappingURL=coreservices.js.map","/** @publicapi @module core */\n/**\n * Matches state names using glob-like pattern strings.\n *\n * Globs can be used in specific APIs including:\n *\n * - [[StateService.is]]\n * - [[StateService.includes]]\n * - The first argument to Hook Registration functions like [[TransitionService.onStart]]\n * - [[HookMatchCriteria]] and [[HookMatchCriterion]]\n *\n * A `Glob` string is a pattern which matches state names.\n * Nested state names are split into segments (separated by a dot) when processing.\n * The state named `foo.bar.baz` is split into three segments ['foo', 'bar', 'baz']\n *\n * Globs work according to the following rules:\n *\n * ### Exact match:\n *\n * The glob `'A.B'` matches the state named exactly `'A.B'`.\n *\n * | Glob |Matches states named|Does not match state named|\n * |:------------|:--------------------|:---------------------|\n * | `'A'` | `'A'` | `'B'` , `'A.C'` |\n * | `'A.B'` | `'A.B'` | `'A'` , `'A.B.C'` |\n * | `'foo'` | `'foo'` | `'FOO'` , `'foo.bar'`|\n *\n * ### Single star (`*`)\n *\n * A single star (`*`) is a wildcard that matches exactly one segment.\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:---------------------|:--------------------------|\n * | `'*'` | `'A'` , `'Z'` | `'A.B'` , `'Z.Y.X'` |\n * | `'A.*'` | `'A.B'` , `'A.C'` | `'A'` , `'A.B.C'` |\n * | `'A.*.*'` | `'A.B.C'` , `'A.X.Y'`| `'A'`, `'A.B'` , `'Z.Y.X'`|\n *\n * ### Double star (`**`)\n *\n * A double star (`'**'`) is a wildcard that matches *zero or more segments*\n *\n * | Glob |Matches states named |Does not match state named |\n * |:------------|:----------------------------------------------|:----------------------------------|\n * | `'**'` | `'A'` , `'A.B'`, `'Z.Y.X'` | (matches all states) |\n * | `'A.**'` | `'A'` , `'A.B'` , `'A.C.X'` | `'Z.Y.X'` |\n * | `'**.X'` | `'X'` , `'A.X'` , `'Z.Y.X'` | `'A'` , `'A.login.Z'` |\n * | `'A.**.X'` | `'A.X'` , `'A.B.X'` , `'A.B.C.X'` | `'A'` , `'A.B.C'` |\n *\n */\nvar Glob = /** @class */ (function () {\n function Glob(text) {\n this.text = text;\n this.glob = text.split('.');\n var regexpString = this.text\n .split('.')\n .map(function (seg) {\n if (seg === '**')\n return '(?:|(?:\\\\.[^.]*)*)';\n if (seg === '*')\n return '\\\\.[^.]*';\n return '\\\\.' + seg;\n })\n .join('');\n this.regexp = new RegExp('^' + regexpString + '$');\n }\n /** Returns true if the string has glob-like characters in it */\n Glob.is = function (text) {\n return !!/[!,*]+/.exec(text);\n };\n /** Returns a glob from the string, or null if the string isn't Glob-like */\n Glob.fromString = function (text) {\n return Glob.is(text) ? new Glob(text) : null;\n };\n Glob.prototype.matches = function (name) {\n return this.regexp.test('.' + name);\n };\n return Glob;\n}());\nexport { Glob };\n//# sourceMappingURL=glob.js.map","/**\n * Higher order functions\n *\n * These utility functions are exported, but are subject to change without notice.\n *\n * @module common_hof\n */ /** */\n/**\n * Returns a new function for [Partial Application](https://en.wikipedia.org/wiki/Partial_application) of the original function.\n *\n * Given a function with N parameters, returns a new function that supports partial application.\n * The new function accepts anywhere from 1 to N parameters. When that function is called with M parameters,\n * where M is less than N, it returns a new function that accepts the remaining parameters. It continues to\n * accept more parameters until all N parameters have been supplied.\n *\n *\n * This contrived example uses a partially applied function as an predicate, which returns true\n * if an object is found in both arrays.\n * @example\n * ```\n * // returns true if an object is in both of the two arrays\n * function inBoth(array1, array2, object) {\n * return array1.indexOf(object) !== -1 &&\n * array2.indexOf(object) !== 1;\n * }\n * let obj1, obj2, obj3, obj4, obj5, obj6, obj7\n * let foos = [obj1, obj3]\n * let bars = [obj3, obj4, obj5]\n *\n * // A curried \"copy\" of inBoth\n * let curriedInBoth = curry(inBoth);\n * // Partially apply both the array1 and array2\n * let inFoosAndBars = curriedInBoth(foos, bars);\n *\n * // Supply the final argument; since all arguments are\n * // supplied, the original inBoth function is then called.\n * let obj1InBoth = inFoosAndBars(obj1); // false\n *\n * // Use the inFoosAndBars as a predicate.\n * // Filter, on each iteration, supplies the final argument\n * let allObjs = [ obj1, obj2, obj3, obj4, obj5, obj6, obj7 ];\n * let foundInBoth = allObjs.filter(inFoosAndBars); // [ obj3 ]\n *\n * ```\n *\n * Stolen from: http://stackoverflow.com/questions/4394747/javascript-curry-function\n *\n * @param fn\n * @returns {*|function(): (*|any)}\n */\nexport function curry(fn) {\n var initial_args = [].slice.apply(arguments, [1]);\n var func_args_length = fn.length;\n function curried(args) {\n if (args.length >= func_args_length)\n return fn.apply(null, args);\n return function () {\n return curried(args.concat([].slice.apply(arguments)));\n };\n }\n return curried(initial_args);\n}\n/**\n * Given a varargs list of functions, returns a function that composes the argument functions, right-to-left\n * given: f(x), g(x), h(x)\n * let composed = compose(f,g,h)\n * then, composed is: f(g(h(x)))\n */\nexport function compose() {\n var args = arguments;\n var start = args.length - 1;\n return function () {\n var i = start, result = args[start].apply(this, arguments);\n while (i--)\n result = args[i].call(this, result);\n return result;\n };\n}\n/**\n * Given a varargs list of functions, returns a function that is composes the argument functions, left-to-right\n * given: f(x), g(x), h(x)\n * let piped = pipe(f,g,h);\n * then, piped is: h(g(f(x)))\n */\nexport function pipe() {\n var funcs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n funcs[_i] = arguments[_i];\n }\n return compose.apply(null, [].slice.call(arguments).reverse());\n}\n/**\n * Given a property name, returns a function that returns that property from an object\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = prop(\"name\");\n * getName(obj) === \"blarg\"\n */\nexport var prop = function (name) { return function (obj) { return obj && obj[name]; }; };\n/**\n * Given a property name and a value, returns a function that returns a boolean based on whether\n * the passed object has a property that matches the value\n * let obj = { foo: 1, name: \"blarg\" };\n * let getName = propEq(\"name\", \"blarg\");\n * getName(obj) === true\n */\nexport var propEq = curry(function (name, _val, obj) { return obj && obj[name] === _val; });\n/**\n * Given a dotted property name, returns a function that returns a nested property from an object, or undefined\n * let obj = { id: 1, nestedObj: { foo: 1, name: \"blarg\" }, };\n * let getName = prop(\"nestedObj.name\");\n * getName(obj) === \"blarg\"\n * let propNotFound = prop(\"this.property.doesnt.exist\");\n * propNotFound(obj) === undefined\n */\nexport var parse = function (name) { return pipe.apply(null, name.split('.').map(prop)); };\n/**\n * Given a function that returns a truthy or falsey value, returns a\n * function that returns the opposite (falsey or truthy) value given the same inputs\n */\nexport var not = function (fn) { return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return !fn.apply(null, args);\n}; };\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if both functions return truthy for the given arguments\n */\nexport function and(fn1, fn2) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fn1.apply(null, args) && fn2.apply(null, args);\n };\n}\n/**\n * Given two functions that return truthy or falsey values, returns a function that returns truthy\n * if at least one of the functions returns truthy for the given arguments\n */\nexport function or(fn1, fn2) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return fn1.apply(null, args) || fn2.apply(null, args);\n };\n}\n/**\n * Check if all the elements of an array match a predicate function\n *\n * @param fn1 a predicate function `fn1`\n * @returns a function which takes an array and returns true if `fn1` is true for all elements of the array\n */\nexport var all = function (fn1) { return function (arr) { return arr.reduce(function (b, x) { return b && !!fn1(x); }, true); }; };\n// tslint:disable-next-line:variable-name\nexport var any = function (fn1) { return function (arr) { return arr.reduce(function (b, x) { return b || !!fn1(x); }, false); }; };\n/** Given a class, returns a Predicate function that returns true if the object is of that class */\nexport var is = function (ctor) { return function (obj) {\n return (obj != null && obj.constructor === ctor) || obj instanceof ctor;\n}; };\n/** Given a value, returns a Predicate function that returns true if another value is === equal to the original value */\nexport var eq = function (value) { return function (other) { return value === other; }; };\n/** Given a value, returns a function which returns the value */\nexport var val = function (v) { return function () { return v; }; };\nexport function invoke(fnName, args) {\n return function (obj) { return obj[fnName].apply(obj, args); };\n}\n/**\n * Sorta like Pattern Matching (a functional programming conditional construct)\n *\n * See http://c2.com/cgi/wiki?PatternMatching\n *\n * This is a conditional construct which allows a series of predicates and output functions\n * to be checked and then applied. Each predicate receives the input. If the predicate\n * returns truthy, then its matching output function (mapping function) is provided with\n * the input and, then the result is returned.\n *\n * Each combination (2-tuple) of predicate + output function should be placed in an array\n * of size 2: [ predicate, mapFn ]\n *\n * These 2-tuples should be put in an outer array.\n *\n * @example\n * ```\n *\n * // Here's a 2-tuple where the first element is the isString predicate\n * // and the second element is a function that returns a description of the input\n * let firstTuple = [ angular.isString, (input) => `Heres your string ${input}` ];\n *\n * // Second tuple: predicate \"isNumber\", mapfn returns a description\n * let secondTuple = [ angular.isNumber, (input) => `(${input}) That's a number!` ];\n *\n * let third = [ (input) => input === null, (input) => `Oh, null...` ];\n *\n * let fourth = [ (input) => input === undefined, (input) => `notdefined` ];\n *\n * let descriptionOf = pattern([ firstTuple, secondTuple, third, fourth ]);\n *\n * console.log(descriptionOf(undefined)); // 'notdefined'\n * console.log(descriptionOf(55)); // '(55) That's a number!'\n * console.log(descriptionOf(\"foo\")); // 'Here's your string foo'\n * ```\n *\n * @param struct A 2D array. Each element of the array should be an array, a 2-tuple,\n * with a Predicate and a mapping/output function\n * @returns {function(any): *}\n */\nexport function pattern(struct) {\n return function (x) {\n for (var i = 0; i < struct.length; i++) {\n if (struct[i][0](x))\n return struct[i][1](x);\n }\n };\n}\n//# sourceMappingURL=hof.js.map","/** @publicapi @module common */ /** */\nexport * from './common';\nexport * from './coreservices';\nexport * from './glob';\nexport * from './hof';\nexport * from './predicates';\nexport * from './queue';\nexport * from './strings';\nexport * from './trace';\n//# sourceMappingURL=index.js.map","/** Predicates\n *\n * These predicates return true/false based on the input.\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_predicates\n */ /** */\nimport { and, not, pipe, prop, or } from './hof';\nvar toStr = Object.prototype.toString;\nvar tis = function (t) { return function (x) { return typeof x === t; }; };\nexport var isUndefined = tis('undefined');\nexport var isDefined = not(isUndefined);\nexport var isNull = function (o) { return o === null; };\nexport var isNullOrUndefined = or(isNull, isUndefined);\nexport var isFunction = tis('function');\nexport var isNumber = tis('number');\nexport var isString = tis('string');\nexport var isObject = function (x) { return x !== null && typeof x === 'object'; };\nexport var isArray = Array.isArray;\nexport var isDate = (function (x) { return toStr.call(x) === '[object Date]'; });\nexport var isRegExp = (function (x) { return toStr.call(x) === '[object RegExp]'; });\n/**\n * Predicate which checks if a value is injectable\n *\n * A value is \"injectable\" if it is a function, or if it is an ng1 array-notation-style array\n * where all the elements in the array are Strings, except the last one, which is a Function\n */\nexport function isInjectable(val) {\n if (isArray(val) && val.length) {\n var head = val.slice(0, -1), tail = val.slice(-1);\n return !(head.filter(not(isString)).length || tail.filter(not(isFunction)).length);\n }\n return isFunction(val);\n}\n/**\n * Predicate which checks if a value looks like a Promise\n *\n * It is probably a Promise if it's an object, and it has a `then` property which is a Function\n */\nexport var isPromise = and(isObject, pipe(prop('then'), isFunction));\n//# sourceMappingURL=predicates.js.map","/** @publicapi @module common */ /** */\nimport { pushTo } from './common';\nvar Queue = /** @class */ (function () {\n function Queue(_items, _limit) {\n if (_items === void 0) { _items = []; }\n if (_limit === void 0) { _limit = null; }\n this._items = _items;\n this._limit = _limit;\n this._evictListeners = [];\n this.onEvict = pushTo(this._evictListeners);\n }\n Queue.prototype.enqueue = function (item) {\n var items = this._items;\n items.push(item);\n if (this._limit && items.length > this._limit)\n this.evict();\n return item;\n };\n Queue.prototype.evict = function () {\n var item = this._items.shift();\n this._evictListeners.forEach(function (fn) { return fn(item); });\n return item;\n };\n Queue.prototype.dequeue = function () {\n if (this.size())\n return this._items.splice(0, 1)[0];\n };\n Queue.prototype.clear = function () {\n var current = this._items;\n this._items = [];\n return current;\n };\n Queue.prototype.size = function () {\n return this._items.length;\n };\n Queue.prototype.remove = function (item) {\n var idx = this._items.indexOf(item);\n return idx > -1 && this._items.splice(idx, 1)[0];\n };\n Queue.prototype.peekTail = function () {\n return this._items[this._items.length - 1];\n };\n Queue.prototype.peekHead = function () {\n if (this.size())\n return this._items[0];\n };\n return Queue;\n}());\nexport { Queue };\n//# sourceMappingURL=queue.js.map","/**\n * Functions that manipulate strings\n *\n * Although these functions are exported, they are subject to change without notice.\n *\n * @module common_strings\n */ /** */\nimport { isArray, isFunction, isInjectable, isNull, isObject, isPromise, isString, isUndefined } from './predicates';\nimport { Rejection } from '../transition/rejectFactory';\nimport { identity, pushR, tail } from './common';\nimport { pattern, val } from './hof';\n/**\n * Returns a string shortened to a maximum length\n *\n * If the string is already less than the `max` length, return the string.\n * Else return the string, shortened to `max - 3` and append three dots (\"...\").\n *\n * @param max the maximum length of the string to return\n * @param str the input string\n */\nexport function maxLength(max, str) {\n if (str.length <= max)\n return str;\n return str.substr(0, max - 3) + '...';\n}\n/**\n * Returns a string, with spaces added to the end, up to a desired str length\n *\n * If the string is already longer than the desired length, return the string.\n * Else returns the string, with extra spaces on the end, such that it reaches `length` characters.\n *\n * @param length the desired length of the string to return\n * @param str the input string\n */\nexport function padString(length, str) {\n while (str.length < length)\n str += ' ';\n return str;\n}\nexport function kebobString(camelCase) {\n return camelCase\n .replace(/^([A-Z])/, function ($1) { return $1.toLowerCase(); }) // replace first char\n .replace(/([A-Z])/g, function ($1) { return '-' + $1.toLowerCase(); }); // replace rest\n}\nexport function functionToString(fn) {\n var fnStr = fnToString(fn);\n var namedFunctionMatch = fnStr.match(/^(function [^ ]+\\([^)]*\\))/);\n var toStr = namedFunctionMatch ? namedFunctionMatch[1] : fnStr;\n var fnName = fn['name'] || '';\n if (fnName && toStr.match(/function \\(/)) {\n return 'function ' + fnName + toStr.substr(9);\n }\n return toStr;\n}\nexport function fnToString(fn) {\n var _fn = isArray(fn) ? fn.slice(-1)[0] : fn;\n return (_fn && _fn.toString()) || 'undefined';\n}\nvar isRejection = Rejection.isRejectionPromise;\nvar hasToString = function (obj) {\n return isObject(obj) && !isArray(obj) && obj.constructor !== Object && isFunction(obj.toString);\n};\nvar stringifyPattern = pattern([\n [isUndefined, val('undefined')],\n [isNull, val('null')],\n [isPromise, val('[Promise]')],\n [isRejection, function (x) { return x._transitionRejection.toString(); }],\n [hasToString, function (x) { return x.toString(); }],\n [isInjectable, functionToString],\n [val(true), identity],\n]);\nexport function stringify(o) {\n var seen = [];\n function format(value) {\n if (isObject(value)) {\n if (seen.indexOf(value) !== -1)\n return '[circular ref]';\n seen.push(value);\n }\n return stringifyPattern(value);\n }\n if (isUndefined(o)) {\n // Workaround for IE & Edge Spec incompatibility where replacer function would not be called when JSON.stringify\n // is given `undefined` as value. To work around that, we simply detect `undefined` and bail out early by\n // manually stringifying it.\n return format(o);\n }\n return JSON.stringify(o, function (key, value) { return format(value); }).replace(/\\\\\"/g, '\"');\n}\n/** Returns a function that splits a string on a character or substring */\nexport var beforeAfterSubstr = function (char) { return function (str) {\n if (!str)\n return ['', ''];\n var idx = str.indexOf(char);\n if (idx === -1)\n return [str, ''];\n return [str.substr(0, idx), str.substr(idx + 1)];\n}; };\nexport var hostRegex = new RegExp('^(?:[a-z]+:)?//[^/]+/');\nexport var stripLastPathElement = function (str) { return str.replace(/\\/[^/]*$/, ''); };\nexport var splitHash = beforeAfterSubstr('#');\nexport var splitQuery = beforeAfterSubstr('?');\nexport var splitEqual = beforeAfterSubstr('=');\nexport var trimHashVal = function (str) { return (str ? str.replace(/^#/, '') : ''); };\n/**\n * Splits on a delimiter, but returns the delimiters in the array\n *\n * #### Example:\n * ```js\n * var splitOnSlashes = splitOnDelim('/');\n * splitOnSlashes(\"/foo\"); // [\"/\", \"foo\"]\n * splitOnSlashes(\"/foo/\"); // [\"/\", \"foo\", \"/\"]\n * ```\n */\nexport function splitOnDelim(delim) {\n var re = new RegExp('(' + delim + ')', 'g');\n return function (str) { return str.split(re).filter(identity); };\n}\n/**\n * Reduce fn that joins neighboring strings\n *\n * Given an array of strings, returns a new array\n * where all neighboring strings have been joined.\n *\n * #### Example:\n * ```js\n * let arr = [\"foo\", \"bar\", 1, \"baz\", \"\", \"qux\" ];\n * arr.reduce(joinNeighborsR, []) // [\"foobar\", 1, \"bazqux\" ]\n * ```\n */\nexport function joinNeighborsR(acc, x) {\n if (isString(tail(acc)) && isString(x))\n return acc.slice(0, -1).concat(tail(acc) + x);\n return pushR(acc, x);\n}\n//# sourceMappingURL=strings.js.map","/**\n * # Transition tracing (debug)\n *\n * Enable transition tracing to print transition information to the console,\n * in order to help debug your application.\n * Tracing logs detailed information about each Transition to your console.\n *\n * To enable tracing, import the [[Trace]] singleton and enable one or more categories.\n *\n * ### ES6\n * ```js\n * import {trace} from \"@uirouter/core\";\n * trace.enable(1, 5); // TRANSITION and VIEWCONFIG\n * ```\n *\n * ### CJS\n * ```js\n * let trace = require(\"@uirouter/core\").trace;\n * trace.enable(\"TRANSITION\", \"VIEWCONFIG\");\n * ```\n *\n * ### Globals\n * ```js\n * let trace = window[\"@uirouter/core\"].trace;\n * trace.enable(); // Trace everything (very verbose)\n * ```\n *\n * ### Angular 1:\n * ```js\n * app.run($trace => $trace.enable());\n * ```\n *\n * @publicapi @module trace\n */\n/* tslint:disable:no-console */\nimport { parse } from '../common/hof';\nimport { isFunction, isNumber } from '../common/predicates';\nimport { stringify, functionToString, maxLength, padString } from './strings';\n/** @hidden */\nfunction uiViewString(uiview) {\n if (!uiview)\n return 'ui-view (defunct)';\n var state = uiview.creationContext ? uiview.creationContext.name || '(root)' : '(none)';\n return \"[ui-view#\" + uiview.id + \" \" + uiview.$type + \":\" + uiview.fqn + \" (\" + uiview.name + \"@\" + state + \")]\";\n}\n/** @hidden */\nvar viewConfigString = function (viewConfig) {\n var view = viewConfig.viewDecl;\n var state = view.$context.name || '(root)';\n return \"[View#\" + viewConfig.$id + \" from '\" + state + \"' state]: target ui-view: '\" + view.$uiViewName + \"@\" + view.$uiViewContextAnchor + \"'\";\n};\n/** @hidden */\nfunction normalizedCat(input) {\n return isNumber(input) ? Category[input] : Category[Category[input]];\n}\n/** @hidden */\nvar consoleLog = Function.prototype.bind.call(console.log, console);\n/** @hidden */\nvar consoletable = isFunction(console.table) ? console.table.bind(console) : consoleLog.bind(console);\n/**\n * Trace categories Enum\n *\n * Enable or disable a category using [[Trace.enable]] or [[Trace.disable]]\n *\n * `trace.enable(Category.TRANSITION)`\n *\n * These can also be provided using a matching string, or position ordinal\n *\n * `trace.enable(\"TRANSITION\")`\n *\n * `trace.enable(1)`\n */\nvar Category;\n(function (Category) {\n Category[Category[\"RESOLVE\"] = 0] = \"RESOLVE\";\n Category[Category[\"TRANSITION\"] = 1] = \"TRANSITION\";\n Category[Category[\"HOOK\"] = 2] = \"HOOK\";\n Category[Category[\"UIVIEW\"] = 3] = \"UIVIEW\";\n Category[Category[\"VIEWCONFIG\"] = 4] = \"VIEWCONFIG\";\n})(Category || (Category = {}));\nexport { Category };\n/** @hidden */\nvar _tid = parse('$id');\n/** @hidden */\nvar _rid = parse('router.$id');\n/** @hidden */\nvar transLbl = function (trans) { return \"Transition #\" + _tid(trans) + \"-\" + _rid(trans); };\n/**\n * Prints UI-Router Transition trace information to the console.\n */\nvar Trace = /** @class */ (function () {\n /** @hidden */\n function Trace() {\n /** @hidden */\n this._enabled = {};\n this.approximateDigests = 0;\n }\n /** @hidden */\n Trace.prototype._set = function (enabled, categories) {\n var _this = this;\n if (!categories.length) {\n categories = Object.keys(Category)\n .map(function (k) { return parseInt(k, 10); })\n .filter(function (k) { return !isNaN(k); })\n .map(function (key) { return Category[key]; });\n }\n categories.map(normalizedCat).forEach(function (category) { return (_this._enabled[category] = enabled); });\n };\n Trace.prototype.enable = function () {\n var categories = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n categories[_i] = arguments[_i];\n }\n this._set(true, categories);\n };\n Trace.prototype.disable = function () {\n var categories = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n categories[_i] = arguments[_i];\n }\n this._set(false, categories);\n };\n /**\n * Retrieves the enabled stateus of a [[Category]]\n *\n * ```js\n * trace.enabled(\"VIEWCONFIG\"); // true or false\n * ```\n *\n * @returns boolean true if the category is enabled\n */\n Trace.prototype.enabled = function (category) {\n return !!this._enabled[normalizedCat(category)];\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceTransitionStart = function (trans) {\n if (!this.enabled(Category.TRANSITION))\n return;\n console.log(transLbl(trans) + \": Started -> \" + stringify(trans));\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceTransitionIgnored = function (trans) {\n if (!this.enabled(Category.TRANSITION))\n return;\n console.log(transLbl(trans) + \": Ignored <> \" + stringify(trans));\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceHookInvocation = function (step, trans, options) {\n if (!this.enabled(Category.HOOK))\n return;\n var event = parse('traceData.hookType')(options) || 'internal', context = parse('traceData.context.state.name')(options) || parse('traceData.context')(options) || 'unknown', name = functionToString(step.registeredHook.callback);\n console.log(transLbl(trans) + \": Hook -> \" + event + \" context: \" + context + \", \" + maxLength(200, name));\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceHookResult = function (hookResult, trans, transitionOptions) {\n if (!this.enabled(Category.HOOK))\n return;\n console.log(transLbl(trans) + \": <- Hook returned: \" + maxLength(200, stringify(hookResult)));\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceResolvePath = function (path, when, trans) {\n if (!this.enabled(Category.RESOLVE))\n return;\n console.log(transLbl(trans) + \": Resolving \" + path + \" (\" + when + \")\");\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceResolvableResolved = function (resolvable, trans) {\n if (!this.enabled(Category.RESOLVE))\n return;\n console.log(transLbl(trans) + \": <- Resolved \" + resolvable + \" to: \" + maxLength(200, stringify(resolvable.data)));\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceError = function (reason, trans) {\n if (!this.enabled(Category.TRANSITION))\n return;\n console.log(transLbl(trans) + \": <- Rejected \" + stringify(trans) + \", reason: \" + reason);\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceSuccess = function (finalState, trans) {\n if (!this.enabled(Category.TRANSITION))\n return;\n console.log(transLbl(trans) + \": <- Success \" + stringify(trans) + \", final state: \" + finalState.name);\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceUIViewEvent = function (event, viewData, extra) {\n if (extra === void 0) { extra = ''; }\n if (!this.enabled(Category.UIVIEW))\n return;\n console.log(\"ui-view: \" + padString(30, event) + \" \" + uiViewString(viewData) + extra);\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceUIViewConfigUpdated = function (viewData, context) {\n if (!this.enabled(Category.UIVIEW))\n return;\n this.traceUIViewEvent('Updating', viewData, \" with ViewConfig from context='\" + context + \"'\");\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceUIViewFill = function (viewData, html) {\n if (!this.enabled(Category.UIVIEW))\n return;\n this.traceUIViewEvent('Fill', viewData, \" with: \" + maxLength(200, html));\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceViewSync = function (pairs) {\n if (!this.enabled(Category.VIEWCONFIG))\n return;\n var uivheader = 'uiview component fqn';\n var cfgheader = 'view config state (view name)';\n var mapping = pairs\n .map(function (_a) {\n var uiView = _a.uiView, viewConfig = _a.viewConfig;\n var _b;\n var uiv = uiView && uiView.fqn;\n var cfg = viewConfig && viewConfig.viewDecl.$context.name + \": (\" + viewConfig.viewDecl.$name + \")\";\n return _b = {}, _b[uivheader] = uiv, _b[cfgheader] = cfg, _b;\n })\n .sort(function (a, b) { return (a[uivheader] || '').localeCompare(b[uivheader] || ''); });\n consoletable(mapping);\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceViewServiceEvent = function (event, viewConfig) {\n if (!this.enabled(Category.VIEWCONFIG))\n return;\n console.log(\"VIEWCONFIG: \" + event + \" \" + viewConfigString(viewConfig));\n };\n /** @internalapi called by ui-router code */\n Trace.prototype.traceViewServiceUIViewEvent = function (event, viewData) {\n if (!this.enabled(Category.VIEWCONFIG))\n return;\n console.log(\"VIEWCONFIG: \" + event + \" \" + uiViewString(viewData));\n };\n return Trace;\n}());\nexport { Trace };\n/**\n * The [[Trace]] singleton\n *\n * #### Example:\n * ```js\n * import {trace} from \"@uirouter/core\";\n * trace.enable(1, 5);\n * ```\n */\nvar trace = new Trace();\nexport { trace };\n//# sourceMappingURL=trace.js.map","/** @publicapi @module core */ /** */\nimport { StateParams } from './params/stateParams';\nimport { Queue } from './common/queue';\n/**\n * Global router state\n *\n * This is where we hold the global mutable state such as current state, current\n * params, current transition, etc.\n */\nvar UIRouterGlobals = /** @class */ (function () {\n function UIRouterGlobals() {\n /**\n * Current parameter values\n *\n * The parameter values from the latest successful transition\n */\n this.params = new StateParams();\n /** @internalapi */\n this.lastStartedTransitionId = -1;\n /** @internalapi */\n this.transitionHistory = new Queue([], 1);\n /** @internalapi */\n this.successfulTransitions = new Queue([], 1);\n }\n UIRouterGlobals.prototype.dispose = function () {\n this.transitionHistory.clear();\n this.successfulTransitions.clear();\n this.transition = null;\n };\n return UIRouterGlobals;\n}());\nexport { UIRouterGlobals };\n//# sourceMappingURL=globals.js.map","/** @internalapi @module hooks */ /** */\nimport { Transition } from '../transition/transition';\nimport { UIRouter } from '../router';\nimport { Resolvable } from '../resolve';\nimport { inArray, uniqR, unnestR, values } from '../common';\nfunction addCoreResolvables(trans) {\n trans.addResolvable(Resolvable.fromData(UIRouter, trans.router), '');\n trans.addResolvable(Resolvable.fromData(Transition, trans), '');\n trans.addResolvable(Resolvable.fromData('$transition$', trans), '');\n trans.addResolvable(Resolvable.fromData('$stateParams', trans.params()), '');\n trans.entering().forEach(function (state) {\n trans.addResolvable(Resolvable.fromData('$state$', state), state);\n });\n}\nexport var registerAddCoreResolvables = function (transitionService) {\n return transitionService.onCreate({}, addCoreResolvables);\n};\nvar TRANSITION_TOKENS = ['$transition$', Transition];\nvar isTransition = inArray(TRANSITION_TOKENS);\n// References to Transition in the treeChanges pathnodes makes all\n// previous Transitions reachable in memory, causing a memory leak\n// This function removes resolves for '$transition$' and `Transition` from the treeChanges.\n// Do not use this on current transitions, only on old ones.\nexport var treeChangesCleanup = function (trans) {\n var nodes = values(trans.treeChanges())\n .reduce(unnestR, [])\n .reduce(uniqR, []);\n // If the resolvable is a Transition, return a new resolvable with null data\n var replaceTransitionWithNull = function (r) {\n return isTransition(r.token) ? Resolvable.fromData(r.token, null) : r;\n };\n nodes.forEach(function (node) {\n node.resolvables = node.resolvables.map(replaceTransitionWithNull);\n });\n};\n//# sourceMappingURL=coreResolvables.js.map","/** @internalapi @module hooks */ /** */\nimport { trace } from '../common/trace';\nimport { Rejection } from '../transition/rejectFactory';\n/**\n * A [[TransitionHookFn]] that skips a transition if it should be ignored\n *\n * This hook is invoked at the end of the onBefore phase.\n *\n * If the transition should be ignored (because no parameter or states changed)\n * then the transition is ignored and not processed.\n */\nfunction ignoredHook(trans) {\n var ignoredReason = trans._ignoredReason();\n if (!ignoredReason)\n return;\n trace.traceTransitionIgnored(trans);\n var pending = trans.router.globals.transition;\n // The user clicked a link going back to the *current state* ('A')\n // However, there is also a pending transition in flight (to 'B')\n // Abort the transition to 'B' because the user now wants to be back at 'A'.\n if (ignoredReason === 'SameAsCurrent' && pending) {\n pending.abort();\n }\n return Rejection.ignored().toPromise();\n}\nexport var registerIgnoredTransitionHook = function (transitionService) {\n return transitionService.onBefore({}, ignoredHook, { priority: -9999 });\n};\n//# sourceMappingURL=ignoredTransition.js.map","/** @internalapi @module hooks */ /** */\n/**\n * A [[TransitionHookFn]] that rejects the Transition if it is invalid\n *\n * This hook is invoked at the end of the onBefore phase.\n * If the transition is invalid (for example, param values do not validate)\n * then the transition is rejected.\n */\nfunction invalidTransitionHook(trans) {\n if (!trans.valid()) {\n throw new Error(trans.error().toString());\n }\n}\nexport var registerInvalidTransitionHook = function (transitionService) {\n return transitionService.onBefore({}, invalidTransitionHook, { priority: -10000 });\n};\n//# sourceMappingURL=invalidTransition.js.map","import { services } from '../common/coreservices';\n/**\n * A [[TransitionHookFn]] that performs lazy loading\n *\n * When entering a state \"abc\" which has a `lazyLoad` function defined:\n * - Invoke the `lazyLoad` function (unless it is already in process)\n * - Flag the hook function as \"in process\"\n * - The function should return a promise (that resolves when lazy loading is complete)\n * - Wait for the promise to settle\n * - If the promise resolves to a [[LazyLoadResult]], then register those states\n * - Flag the hook function as \"not in process\"\n * - If the hook was successful\n * - Remove the `lazyLoad` function from the state declaration\n * - If all the hooks were successful\n * - Retry the transition (by returning a TargetState)\n *\n * ```\n * .state('abc', {\n * component: 'fooComponent',\n * lazyLoad: () => System.import('./fooComponent')\n * });\n * ```\n *\n * See [[StateDeclaration.lazyLoad]]\n */\nvar lazyLoadHook = function (transition) {\n var router = transition.router;\n function retryTransition() {\n if (transition.originalTransition().options().source !== 'url') {\n // The original transition was not triggered via url sync\n // The lazy state should be loaded now, so re-try the original transition\n var orig = transition.targetState();\n return router.stateService.target(orig.identifier(), orig.params(), orig.options());\n }\n // The original transition was triggered via url sync\n // Run the URL rules and find the best match\n var $url = router.urlService;\n var result = $url.match($url.parts());\n var rule = result && result.rule;\n // If the best match is a state, redirect the transition (instead\n // of calling sync() which supersedes the current transition)\n if (rule && rule.type === 'STATE') {\n var state = rule.state;\n var params = result.match;\n return router.stateService.target(state, params, transition.options());\n }\n // No matching state found, so let .sync() choose the best non-state match/otherwise\n router.urlService.sync();\n }\n var promises = transition\n .entering()\n .filter(function (state) { return !!state.$$state().lazyLoad; })\n .map(function (state) { return lazyLoadState(transition, state); });\n return services.$q.all(promises).then(retryTransition);\n};\nexport var registerLazyLoadHook = function (transitionService) {\n return transitionService.onBefore({ entering: function (state) { return !!state.lazyLoad; } }, lazyLoadHook);\n};\n/**\n * Invokes a state's lazy load function\n *\n * @param transition a Transition context\n * @param state the state to lazy load\n * @returns A promise for the lazy load result\n */\nexport function lazyLoadState(transition, state) {\n var lazyLoadFn = state.$$state().lazyLoad;\n // Store/get the lazy load promise on/from the hookfn so it doesn't get re-invoked\n var promise = lazyLoadFn['_promise'];\n if (!promise) {\n var success = function (result) {\n delete state.lazyLoad;\n delete state.$$state().lazyLoad;\n delete lazyLoadFn['_promise'];\n return result;\n };\n var error = function (err) {\n delete lazyLoadFn['_promise'];\n return services.$q.reject(err);\n };\n promise = lazyLoadFn['_promise'] = services.$q\n .when(lazyLoadFn(transition, state))\n .then(updateStateRegistry)\n .then(success, error);\n }\n /** Register any lazy loaded state definitions */\n function updateStateRegistry(result) {\n if (result && Array.isArray(result.states)) {\n result.states.forEach(function (_state) { return transition.router.stateRegistry.register(_state); });\n }\n return result;\n }\n return promise;\n}\n//# sourceMappingURL=lazyLoad.js.map","/**\n * A factory which creates an onEnter, onExit or onRetain transition hook function\n *\n * The returned function invokes the (for instance) state.onEnter hook when the\n * state is being entered.\n *\n * @hidden\n */\nfunction makeEnterExitRetainHook(hookName) {\n return function (transition, state) {\n var _state = state.$$state();\n var hookFn = _state[hookName];\n return hookFn(transition, state);\n };\n}\n/**\n * The [[TransitionStateHookFn]] for onExit\n *\n * When the state is being exited, the state's .onExit function is invoked.\n *\n * Registered using `transitionService.onExit({ exiting: (state) => !!state.onExit }, onExitHook);`\n *\n * See: [[IHookRegistry.onExit]]\n */\nvar onExitHook = makeEnterExitRetainHook('onExit');\nexport var registerOnExitHook = function (transitionService) {\n return transitionService.onExit({ exiting: function (state) { return !!state.onExit; } }, onExitHook);\n};\n/**\n * The [[TransitionStateHookFn]] for onRetain\n *\n * When the state was already entered, and is not being exited or re-entered, the state's .onRetain function is invoked.\n *\n * Registered using `transitionService.onRetain({ retained: (state) => !!state.onRetain }, onRetainHook);`\n *\n * See: [[IHookRegistry.onRetain]]\n */\nvar onRetainHook = makeEnterExitRetainHook('onRetain');\nexport var registerOnRetainHook = function (transitionService) {\n return transitionService.onRetain({ retained: function (state) { return !!state.onRetain; } }, onRetainHook);\n};\n/**\n * The [[TransitionStateHookFn]] for onEnter\n *\n * When the state is being entered, the state's .onEnter function is invoked.\n *\n * Registered using `transitionService.onEnter({ entering: (state) => !!state.onEnter }, onEnterHook);`\n *\n * See: [[IHookRegistry.onEnter]]\n */\nvar onEnterHook = makeEnterExitRetainHook('onEnter');\nexport var registerOnEnterHook = function (transitionService) {\n return transitionService.onEnter({ entering: function (state) { return !!state.onEnter; } }, onEnterHook);\n};\n//# sourceMappingURL=onEnterExitRetain.js.map","/** @internalapi @module hooks */ /** */\nimport { isString, isFunction } from '../common/predicates';\nimport { services } from '../common/coreservices';\nimport { TargetState } from '../state/targetState';\n/**\n * A [[TransitionHookFn]] that redirects to a different state or params\n *\n * Registered using `transitionService.onStart({ to: (state) => !!state.redirectTo }, redirectHook);`\n *\n * See [[StateDeclaration.redirectTo]]\n */\nvar redirectToHook = function (trans) {\n var redirect = trans.to().redirectTo;\n if (!redirect)\n return;\n var $state = trans.router.stateService;\n function handleResult(result) {\n if (!result)\n return;\n if (result instanceof TargetState)\n return result;\n if (isString(result))\n return $state.target(result, trans.params(), trans.options());\n if (result['state'] || result['params'])\n return $state.target(result['state'] || trans.to(), result['params'] || trans.params(), trans.options());\n }\n if (isFunction(redirect)) {\n return services.$q.when(redirect(trans)).then(handleResult);\n }\n return handleResult(redirect);\n};\nexport var registerRedirectToHook = function (transitionService) {\n return transitionService.onStart({ to: function (state) { return !!state.redirectTo; } }, redirectToHook);\n};\n//# sourceMappingURL=redirectTo.js.map","/** @internalapi @module hooks */ /** */\nimport { noop } from '../common/common';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { val } from '../common/hof';\nexport var RESOLVE_HOOK_PRIORITY = 1000;\n/**\n * A [[TransitionHookFn]] which resolves all EAGER Resolvables in the To Path\n *\n * Registered using `transitionService.onStart({}, eagerResolvePath, { priority: 1000 });`\n *\n * When a Transition starts, this hook resolves all the EAGER Resolvables, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nvar eagerResolvePath = function (trans) {\n return new ResolveContext(trans.treeChanges().to).resolvePath('EAGER', trans).then(noop);\n};\nexport var registerEagerResolvePath = function (transitionService) {\n return transitionService.onStart({}, eagerResolvePath, { priority: RESOLVE_HOOK_PRIORITY });\n};\n/**\n * A [[TransitionHookFn]] which resolves all LAZY Resolvables for the state (and all its ancestors) in the To Path\n *\n * Registered using `transitionService.onEnter({ entering: () => true }, lazyResolveState, { priority: 1000 });`\n *\n * When a State is being entered, this hook resolves all the Resolvables for this state, which the transition then waits for.\n *\n * See [[StateDeclaration.resolve]]\n */\nvar lazyResolveState = function (trans, state) {\n return new ResolveContext(trans.treeChanges().to)\n .subContext(state.$$state())\n .resolvePath('LAZY', trans)\n .then(noop);\n};\nexport var registerLazyResolveState = function (transitionService) {\n return transitionService.onEnter({ entering: val(true) }, lazyResolveState, { priority: RESOLVE_HOOK_PRIORITY });\n};\n/**\n * A [[TransitionHookFn]] which resolves any dynamically added (LAZY or EAGER) Resolvables.\n *\n * Registered using `transitionService.onFinish({}, eagerResolvePath, { priority: 1000 });`\n *\n * After all entering states have been entered, this hook resolves any remaining Resolvables.\n * These are typically dynamic resolves which were added by some Transition Hook using [[Transition.addResolvable]].\n *\n * See [[StateDeclaration.resolve]]\n */\nvar resolveRemaining = function (trans) {\n return new ResolveContext(trans.treeChanges().to).resolvePath('LAZY', trans).then(noop);\n};\nexport var registerResolveRemaining = function (transitionService) {\n return transitionService.onFinish({}, resolveRemaining, { priority: RESOLVE_HOOK_PRIORITY });\n};\n//# sourceMappingURL=resolve.js.map","import { copy } from '../common/common';\n/**\n * A [[TransitionHookFn]] which updates global UI-Router state\n *\n * Registered using `transitionService.onBefore({}, updateGlobalState);`\n *\n * Before a [[Transition]] starts, updates the global value of \"the current transition\" ([[Globals.transition]]).\n * After a successful [[Transition]], updates the global values of \"the current state\"\n * ([[Globals.current]] and [[Globals.$current]]) and \"the current param values\" ([[Globals.params]]).\n *\n * See also the deprecated properties:\n * [[StateService.transition]], [[StateService.current]], [[StateService.params]]\n */\nvar updateGlobalState = function (trans) {\n var globals = trans.router.globals;\n var transitionSuccessful = function () {\n globals.successfulTransitions.enqueue(trans);\n globals.$current = trans.$to();\n globals.current = globals.$current.self;\n copy(trans.params(), globals.params);\n };\n var clearCurrentTransition = function () {\n // Do not clear globals.transition if a different transition has started in the meantime\n if (globals.transition === trans)\n globals.transition = null;\n };\n trans.onSuccess({}, transitionSuccessful, { priority: 10000 });\n trans.promise.then(clearCurrentTransition, clearCurrentTransition);\n};\nexport var registerUpdateGlobalState = function (transitionService) {\n return transitionService.onCreate({}, updateGlobalState);\n};\n//# sourceMappingURL=updateGlobals.js.map","/**\n * A [[TransitionHookFn]] which updates the URL after a successful transition\n *\n * Registered using `transitionService.onSuccess({}, updateUrl);`\n */\nvar updateUrl = function (transition) {\n var options = transition.options();\n var $state = transition.router.stateService;\n var $urlRouter = transition.router.urlRouter;\n // Dont update the url in these situations:\n // The transition was triggered by a URL sync (options.source === 'url')\n // The user doesn't want the url to update (options.location === false)\n // The destination state, and all parents have no navigable url\n if (options.source !== 'url' && options.location && $state.$current.navigable) {\n var urlOptions = { replace: options.location === 'replace' };\n $urlRouter.push($state.$current.navigable.url, $state.params, urlOptions);\n }\n $urlRouter.update(true);\n};\nexport var registerUpdateUrl = function (transitionService) {\n return transitionService.onSuccess({}, updateUrl, { priority: 9999 });\n};\n//# sourceMappingURL=url.js.map","/** @internalapi @module hooks */ /** */\nimport { noop } from '../common/common';\nimport { services } from '../common/coreservices';\n/**\n * A [[TransitionHookFn]] which waits for the views to load\n *\n * Registered using `transitionService.onStart({}, loadEnteringViews);`\n *\n * Allows the views to do async work in [[ViewConfig.load]] before the transition continues.\n * In angular 1, this includes loading the templates.\n */\nvar loadEnteringViews = function (transition) {\n var $q = services.$q;\n var enteringViews = transition.views('entering');\n if (!enteringViews.length)\n return;\n return $q.all(enteringViews.map(function (view) { return $q.when(view.load()); })).then(noop);\n};\nexport var registerLoadEnteringViews = function (transitionService) {\n return transitionService.onFinish({}, loadEnteringViews);\n};\n/**\n * A [[TransitionHookFn]] which activates the new views when a transition is successful.\n *\n * Registered using `transitionService.onSuccess({}, activateViews);`\n *\n * After a transition is complete, this hook deactivates the old views from the previous state,\n * and activates the new views from the destination state.\n *\n * See [[ViewService]]\n */\nvar activateViews = function (transition) {\n var enteringViews = transition.views('entering');\n var exitingViews = transition.views('exiting');\n if (!enteringViews.length && !exitingViews.length)\n return;\n var $view = transition.router.viewService;\n exitingViews.forEach(function (vc) { return $view.deactivateViewConfig(vc); });\n enteringViews.forEach(function (vc) { return $view.activateViewConfig(vc); });\n $view.sync();\n};\nexport var registerActivateViews = function (transitionService) {\n return transitionService.onSuccess({}, activateViews);\n};\n//# sourceMappingURL=views.js.map","/** @publicapi @module common */ /** */\nexport * from './common/index';\nexport * from './params/index';\nexport * from './path/index';\nexport * from './resolve/index';\nexport * from './state/index';\nexport * from './transition/index';\nexport * from './url/index';\nexport * from './view/index';\nexport * from './globals';\nexport * from './router';\nexport * from './vanilla';\nexport * from './interface';\n//# sourceMappingURL=index.js.map","/**\n * # Core classes and interfaces\n *\n * The classes and interfaces that are core to ui-router and do not belong\n * to a more specific subsystem (such as resolve).\n *\n * @preferred @publicapi @module core\n */ /** */\n/** @internalapi */\nvar UIRouterPluginBase = /** @class */ (function () {\n function UIRouterPluginBase() {\n }\n UIRouterPluginBase.prototype.dispose = function (router) { };\n return UIRouterPluginBase;\n}());\nexport { UIRouterPluginBase };\n//# sourceMappingURL=interface.js.map","export * from './param';\nexport * from './paramTypes';\nexport * from './stateParams';\nexport * from './paramType';\n//# sourceMappingURL=index.js.map","/** @publicapi @module params */ /** */\nimport { extend, filter, map, allTrueR, find } from '../common/common';\nimport { prop } from '../common/hof';\nimport { isInjectable, isDefined, isString, isArray, isUndefined } from '../common/predicates';\nimport { services } from '../common/coreservices';\nimport { ParamType } from './paramType';\n/** @hidden */\nvar hasOwn = Object.prototype.hasOwnProperty;\n/** @hidden */\nvar isShorthand = function (cfg) {\n return ['value', 'type', 'squash', 'array', 'dynamic'].filter(hasOwn.bind(cfg || {})).length === 0;\n};\n/** @internalapi */\nvar DefType;\n(function (DefType) {\n DefType[DefType[\"PATH\"] = 0] = \"PATH\";\n DefType[DefType[\"SEARCH\"] = 1] = \"SEARCH\";\n DefType[DefType[\"CONFIG\"] = 2] = \"CONFIG\";\n})(DefType || (DefType = {}));\nexport { DefType };\n/** @internalapi */\nfunction getParamDeclaration(paramName, location, state) {\n var noReloadOnSearch = (state.reloadOnSearch === false && location === DefType.SEARCH) || undefined;\n var dynamic = find([state.dynamic, noReloadOnSearch], isDefined);\n var defaultConfig = isDefined(dynamic) ? { dynamic: dynamic } : {};\n var paramConfig = unwrapShorthand(state && state.params && state.params[paramName]);\n return extend(defaultConfig, paramConfig);\n}\n/** @hidden */\nfunction unwrapShorthand(cfg) {\n cfg = isShorthand(cfg) ? { value: cfg } : cfg;\n getStaticDefaultValue['__cacheable'] = true;\n function getStaticDefaultValue() {\n return cfg.value;\n }\n var $$fn = isInjectable(cfg.value) ? cfg.value : getStaticDefaultValue;\n return extend(cfg, { $$fn: $$fn });\n}\n/** @hidden */\nfunction getType(cfg, urlType, location, id, paramTypes) {\n if (cfg.type && urlType && urlType.name !== 'string')\n throw new Error(\"Param '\" + id + \"' has two type configurations.\");\n if (cfg.type && urlType && urlType.name === 'string' && paramTypes.type(cfg.type))\n return paramTypes.type(cfg.type);\n if (urlType)\n return urlType;\n if (!cfg.type) {\n var type = location === DefType.CONFIG\n ? 'any'\n : location === DefType.PATH\n ? 'path'\n : location === DefType.SEARCH\n ? 'query'\n : 'string';\n return paramTypes.type(type);\n }\n return cfg.type instanceof ParamType ? cfg.type : paramTypes.type(cfg.type);\n}\n/**\n * @internalapi\n * returns false, true, or the squash value to indicate the \"default parameter url squash policy\".\n */\nfunction getSquashPolicy(config, isOptional, defaultPolicy) {\n var squash = config.squash;\n if (!isOptional || squash === false)\n return false;\n if (!isDefined(squash) || squash == null)\n return defaultPolicy;\n if (squash === true || isString(squash))\n return squash;\n throw new Error(\"Invalid squash policy: '\" + squash + \"'. Valid policies: false, true, or arbitrary string\");\n}\n/** @internalapi */\nfunction getReplace(config, arrayMode, isOptional, squash) {\n var defaultPolicy = [\n { from: '', to: isOptional || arrayMode ? undefined : '' },\n { from: null, to: isOptional || arrayMode ? undefined : '' },\n ];\n var replace = isArray(config.replace) ? config.replace : [];\n if (isString(squash))\n replace.push({ from: squash, to: undefined });\n var configuredKeys = map(replace, prop('from'));\n return filter(defaultPolicy, function (item) { return configuredKeys.indexOf(item.from) === -1; }).concat(replace);\n}\n/** @internalapi */\nvar Param = /** @class */ (function () {\n function Param(id, type, location, urlConfig, state) {\n var config = getParamDeclaration(id, location, state);\n type = getType(config, type, location, id, urlConfig.paramTypes);\n var arrayMode = getArrayMode();\n type = arrayMode ? type.$asArray(arrayMode, location === DefType.SEARCH) : type;\n var isOptional = config.value !== undefined || location === DefType.SEARCH;\n var dynamic = isDefined(config.dynamic) ? !!config.dynamic : !!type.dynamic;\n var raw = isDefined(config.raw) ? !!config.raw : !!type.raw;\n var squash = getSquashPolicy(config, isOptional, urlConfig.defaultSquashPolicy());\n var replace = getReplace(config, arrayMode, isOptional, squash);\n var inherit = isDefined(config.inherit) ? !!config.inherit : !!type.inherit;\n // array config: param name (param[]) overrides default settings. explicit config overrides param name.\n function getArrayMode() {\n var arrayDefaults = { array: location === DefType.SEARCH ? 'auto' : false };\n var arrayParamNomenclature = id.match(/\\[\\]$/) ? { array: true } : {};\n return extend(arrayDefaults, arrayParamNomenclature, config).array;\n }\n extend(this, { id: id, type: type, location: location, isOptional: isOptional, dynamic: dynamic, raw: raw, squash: squash, replace: replace, inherit: inherit, array: arrayMode, config: config });\n }\n Param.values = function (params, values) {\n if (values === void 0) { values = {}; }\n var paramValues = {};\n for (var _i = 0, params_1 = params; _i < params_1.length; _i++) {\n var param = params_1[_i];\n paramValues[param.id] = param.value(values[param.id]);\n }\n return paramValues;\n };\n /**\n * Finds [[Param]] objects which have different param values\n *\n * Filters a list of [[Param]] objects to only those whose parameter values differ in two param value objects\n *\n * @param params: The list of Param objects to filter\n * @param values1: The first set of parameter values\n * @param values2: the second set of parameter values\n *\n * @returns any Param objects whose values were different between values1 and values2\n */\n Param.changed = function (params, values1, values2) {\n if (values1 === void 0) { values1 = {}; }\n if (values2 === void 0) { values2 = {}; }\n return params.filter(function (param) { return !param.type.equals(values1[param.id], values2[param.id]); });\n };\n /**\n * Checks if two param value objects are equal (for a set of [[Param]] objects)\n *\n * @param params The list of [[Param]] objects to check\n * @param values1 The first set of param values\n * @param values2 The second set of param values\n *\n * @returns true if the param values in values1 and values2 are equal\n */\n Param.equals = function (params, values1, values2) {\n if (values1 === void 0) { values1 = {}; }\n if (values2 === void 0) { values2 = {}; }\n return Param.changed(params, values1, values2).length === 0;\n };\n /** Returns true if a the parameter values are valid, according to the Param definitions */\n Param.validates = function (params, values) {\n if (values === void 0) { values = {}; }\n return params.map(function (param) { return param.validates(values[param.id]); }).reduce(allTrueR, true);\n };\n Param.prototype.isDefaultValue = function (value) {\n return this.isOptional && this.type.equals(this.value(), value);\n };\n /**\n * [Internal] Gets the decoded representation of a value if the value is defined, otherwise, returns the\n * default value, which may be the result of an injectable function.\n */\n Param.prototype.value = function (value) {\n var _this = this;\n /**\n * [Internal] Get the default value of a parameter, which may be an injectable function.\n */\n var getDefaultValue = function () {\n if (_this._defaultValueCache)\n return _this._defaultValueCache.defaultValue;\n if (!services.$injector)\n throw new Error('Injectable functions cannot be called at configuration time');\n var defaultValue = services.$injector.invoke(_this.config.$$fn);\n if (defaultValue !== null && defaultValue !== undefined && !_this.type.is(defaultValue))\n throw new Error(\"Default value (\" + defaultValue + \") for parameter '\" + _this.id + \"' is not an instance of ParamType (\" + _this.type.name + \")\");\n if (_this.config.$$fn['__cacheable']) {\n _this._defaultValueCache = { defaultValue: defaultValue };\n }\n return defaultValue;\n };\n var replaceSpecialValues = function (val) {\n for (var _i = 0, _a = _this.replace; _i < _a.length; _i++) {\n var tuple = _a[_i];\n if (tuple.from === val)\n return tuple.to;\n }\n return val;\n };\n value = replaceSpecialValues(value);\n return isUndefined(value) ? getDefaultValue() : this.type.$normalize(value);\n };\n Param.prototype.isSearch = function () {\n return this.location === DefType.SEARCH;\n };\n Param.prototype.validates = function (value) {\n // There was no parameter value, but the param is optional\n if ((isUndefined(value) || value === null) && this.isOptional)\n return true;\n // The value was not of the correct ParamType, and could not be decoded to the correct ParamType\n var normalized = this.type.$normalize(value);\n if (!this.type.is(normalized))\n return false;\n // The value was of the correct type, but when encoded, did not match the ParamType's regexp\n var encoded = this.type.encode(normalized);\n return !(isString(encoded) && !this.type.pattern.exec(encoded));\n };\n Param.prototype.toString = function () {\n return \"{Param:\" + this.id + \" \" + this.type + \" squash: '\" + this.squash + \"' optional: \" + this.isOptional + \"}\";\n };\n return Param;\n}());\nexport { Param };\n//# sourceMappingURL=param.js.map","/** @publicapi @module params */ /** */\nimport { extend, filter, map } from '../common/common';\nimport { isArray, isDefined } from '../common/predicates';\n/**\n * An internal class which implements [[ParamTypeDefinition]].\n *\n * A [[ParamTypeDefinition]] is a plain javascript object used to register custom parameter types.\n * When a param type definition is registered, an instance of this class is created internally.\n *\n * This class has naive implementations for all the [[ParamTypeDefinition]] methods.\n *\n * Used by [[UrlMatcher]] when matching or formatting URLs, or comparing and validating parameter values.\n *\n * #### Example:\n * ```js\n * var paramTypeDef = {\n * decode: function(val) { return parseInt(val, 10); },\n * encode: function(val) { return val && val.toString(); },\n * equals: function(a, b) { return this.is(a) && a === b; },\n * is: function(val) { return angular.isNumber(val) && isFinite(val) && val % 1 === 0; },\n * pattern: /\\d+/\n * }\n *\n * var paramType = new ParamType(paramTypeDef);\n * ```\n * @internalapi\n */\nvar ParamType = /** @class */ (function () {\n /**\n * @param def A configuration object which contains the custom type definition. The object's\n * properties will override the default methods and/or pattern in `ParamType`'s public interface.\n * @returns a new ParamType object\n */\n function ParamType(def) {\n /** @inheritdoc */\n this.pattern = /.*/;\n /** @inheritdoc */\n this.inherit = true;\n extend(this, def);\n }\n // consider these four methods to be \"abstract methods\" that should be overridden\n /** @inheritdoc */\n ParamType.prototype.is = function (val, key) {\n return true;\n };\n /** @inheritdoc */\n ParamType.prototype.encode = function (val, key) {\n return val;\n };\n /** @inheritdoc */\n ParamType.prototype.decode = function (val, key) {\n return val;\n };\n /** @inheritdoc */\n ParamType.prototype.equals = function (a, b) {\n // tslint:disable-next-line:triple-equals\n return a == b;\n };\n ParamType.prototype.$subPattern = function () {\n var sub = this.pattern.toString();\n return sub.substr(1, sub.length - 2);\n };\n ParamType.prototype.toString = function () {\n return \"{ParamType:\" + this.name + \"}\";\n };\n /** Given an encoded string, or a decoded object, returns a decoded object */\n ParamType.prototype.$normalize = function (val) {\n return this.is(val) ? val : this.decode(val);\n };\n /**\n * Wraps an existing custom ParamType as an array of ParamType, depending on 'mode'.\n * e.g.:\n * - urlmatcher pattern \"/path?{queryParam[]:int}\"\n * - url: \"/path?queryParam=1&queryParam=2\n * - $stateParams.queryParam will be [1, 2]\n * if `mode` is \"auto\", then\n * - url: \"/path?queryParam=1 will create $stateParams.queryParam: 1\n * - url: \"/path?queryParam=1&queryParam=2 will create $stateParams.queryParam: [1, 2]\n */\n ParamType.prototype.$asArray = function (mode, isSearch) {\n if (!mode)\n return this;\n if (mode === 'auto' && !isSearch)\n throw new Error(\"'auto' array mode is for query parameters only\");\n return new ArrayType(this, mode);\n };\n return ParamType;\n}());\nexport { ParamType };\n/**\n * Wraps up a `ParamType` object to handle array values.\n * @internalapi\n */\nfunction ArrayType(type, mode) {\n var _this = this;\n // Wrap non-array value as array\n function arrayWrap(val) {\n return isArray(val) ? val : isDefined(val) ? [val] : [];\n }\n // Unwrap array value for \"auto\" mode. Return undefined for empty array.\n function arrayUnwrap(val) {\n switch (val.length) {\n case 0:\n return undefined;\n case 1:\n return mode === 'auto' ? val[0] : val;\n default:\n return val;\n }\n }\n // Wraps type (.is/.encode/.decode) functions to operate on each value of an array\n function arrayHandler(callback, allTruthyMode) {\n return function handleArray(val) {\n if (isArray(val) && val.length === 0)\n return val;\n var arr = arrayWrap(val);\n var result = map(arr, callback);\n return allTruthyMode === true ? filter(result, function (x) { return !x; }).length === 0 : arrayUnwrap(result);\n };\n }\n // Wraps type (.equals) functions to operate on each value of an array\n function arrayEqualsHandler(callback) {\n return function handleArray(val1, val2) {\n var left = arrayWrap(val1), right = arrayWrap(val2);\n if (left.length !== right.length)\n return false;\n for (var i = 0; i < left.length; i++) {\n if (!callback(left[i], right[i]))\n return false;\n }\n return true;\n };\n }\n ['encode', 'decode', 'equals', '$normalize'].forEach(function (name) {\n var paramTypeFn = type[name].bind(type);\n var wrapperFn = name === 'equals' ? arrayEqualsHandler : arrayHandler;\n _this[name] = wrapperFn(paramTypeFn);\n });\n extend(this, {\n dynamic: type.dynamic,\n name: type.name,\n pattern: type.pattern,\n inherit: type.inherit,\n raw: type.raw,\n is: arrayHandler(type.is.bind(type), true),\n $arrayMode: mode,\n });\n}\n//# sourceMappingURL=paramType.js.map","/** @publicapi @module params */ /** */\nimport { fromJson, toJson, identity, equals, inherit, map, extend, pick } from '../common/common';\nimport { isDefined, isNullOrUndefined } from '../common/predicates';\nimport { is } from '../common/hof';\nimport { services } from '../common/coreservices';\nimport { ParamType } from './paramType';\n/**\n * A registry for parameter types.\n *\n * This registry manages the built-in (and custom) parameter types.\n *\n * The built-in parameter types are:\n *\n * - [[string]]\n * - [[path]]\n * - [[query]]\n * - [[hash]]\n * - [[int]]\n * - [[bool]]\n * - [[date]]\n * - [[json]]\n * - [[any]]\n *\n * To register custom parameter types, use [[UrlConfig.type]], i.e.,\n *\n * ```js\n * router.urlService.config.type(customType)\n * ```\n */\nvar ParamTypes = /** @class */ (function () {\n /** @internalapi */\n function ParamTypes() {\n /** @hidden */\n this.enqueue = true;\n /** @hidden */\n this.typeQueue = [];\n /** @internalapi */\n this.defaultTypes = pick(ParamTypes.prototype, [\n 'hash',\n 'string',\n 'query',\n 'path',\n 'int',\n 'bool',\n 'date',\n 'json',\n 'any',\n ]);\n // Register default types. Store them in the prototype of this.types.\n var makeType = function (definition, name) { return new ParamType(extend({ name: name }, definition)); };\n this.types = inherit(map(this.defaultTypes, makeType), {});\n }\n /** @internalapi */\n ParamTypes.prototype.dispose = function () {\n this.types = {};\n };\n /**\n * Registers a parameter type\n *\n * End users should call [[UrlMatcherFactory.type]], which delegates to this method.\n */\n ParamTypes.prototype.type = function (name, definition, definitionFn) {\n if (!isDefined(definition))\n return this.types[name];\n if (this.types.hasOwnProperty(name))\n throw new Error(\"A type named '\" + name + \"' has already been defined.\");\n this.types[name] = new ParamType(extend({ name: name }, definition));\n if (definitionFn) {\n this.typeQueue.push({ name: name, def: definitionFn });\n if (!this.enqueue)\n this._flushTypeQueue();\n }\n return this;\n };\n /** @internalapi */\n ParamTypes.prototype._flushTypeQueue = function () {\n while (this.typeQueue.length) {\n var type = this.typeQueue.shift();\n if (type.pattern)\n throw new Error(\"You cannot override a type's .pattern at runtime.\");\n extend(this.types[type.name], services.$injector.invoke(type.def));\n }\n };\n return ParamTypes;\n}());\nexport { ParamTypes };\n/** @hidden */\nfunction initDefaultTypes() {\n var makeDefaultType = function (def) {\n var valToString = function (val) { return (val != null ? val.toString() : val); };\n var defaultTypeBase = {\n encode: valToString,\n decode: valToString,\n is: is(String),\n pattern: /.*/,\n // tslint:disable-next-line:triple-equals\n equals: function (a, b) { return a == b; },\n };\n return extend({}, defaultTypeBase, def);\n };\n // Default Parameter Type Definitions\n extend(ParamTypes.prototype, {\n string: makeDefaultType({}),\n path: makeDefaultType({\n pattern: /[^/]*/,\n }),\n query: makeDefaultType({}),\n hash: makeDefaultType({\n inherit: false,\n }),\n int: makeDefaultType({\n decode: function (val) { return parseInt(val, 10); },\n is: function (val) {\n return !isNullOrUndefined(val) && this.decode(val.toString()) === val;\n },\n pattern: /-?\\d+/,\n }),\n bool: makeDefaultType({\n encode: function (val) { return (val && 1) || 0; },\n decode: function (val) { return parseInt(val, 10) !== 0; },\n is: is(Boolean),\n pattern: /0|1/,\n }),\n date: makeDefaultType({\n encode: function (val) {\n return !this.is(val)\n ? undefined\n : [val.getFullYear(), ('0' + (val.getMonth() + 1)).slice(-2), ('0' + val.getDate()).slice(-2)].join('-');\n },\n decode: function (val) {\n if (this.is(val))\n return val;\n var match = this.capture.exec(val);\n return match ? new Date(match[1], match[2] - 1, match[3]) : undefined;\n },\n is: function (val) { return val instanceof Date && !isNaN(val.valueOf()); },\n equals: function (l, r) {\n return ['getFullYear', 'getMonth', 'getDate'].reduce(function (acc, fn) { return acc && l[fn]() === r[fn](); }, true);\n },\n pattern: /[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,\n capture: /([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/,\n }),\n json: makeDefaultType({\n encode: toJson,\n decode: fromJson,\n is: is(Object),\n equals: equals,\n pattern: /[^/]*/,\n }),\n // does not encode/decode\n any: makeDefaultType({\n encode: identity,\n decode: identity,\n is: function () { return true; },\n equals: equals,\n }),\n });\n}\ninitDefaultTypes();\n//# sourceMappingURL=paramTypes.js.map","/** @publicapi @module params */ /** */\nimport { extend, ancestors } from '../common/common';\n/** @internalapi */\nvar StateParams = /** @class */ (function () {\n function StateParams(params) {\n if (params === void 0) { params = {}; }\n extend(this, params);\n }\n /**\n * Merges a set of parameters with all parameters inherited between the common parents of the\n * current state and a given destination state.\n *\n * @param {Object} newParams The set of parameters which will be composited with inherited params.\n * @param {Object} $current Internal definition of object representing the current state.\n * @param {Object} $to Internal definition of object representing state to transition to.\n */\n StateParams.prototype.$inherit = function (newParams, $current, $to) {\n var parentParams;\n var parents = ancestors($current, $to), inherited = {}, inheritList = [];\n for (var i in parents) {\n if (!parents[i] || !parents[i].params)\n continue;\n parentParams = Object.keys(parents[i].params);\n if (!parentParams.length)\n continue;\n for (var j in parentParams) {\n if (inheritList.indexOf(parentParams[j]) >= 0)\n continue;\n inheritList.push(parentParams[j]);\n inherited[parentParams[j]] = this[parentParams[j]];\n }\n }\n return extend({}, inherited, newParams);\n };\n return StateParams;\n}());\nexport { StateParams };\n//# sourceMappingURL=stateParams.js.map","/** @internalapi @module path */ /** */\nexport * from './pathNode';\nexport * from './pathUtils';\n//# sourceMappingURL=index.js.map","/** @internalapi @module path */ /** */\nimport { extend, applyPairs, find } from '../common/common';\nimport { propEq } from '../common/hof';\nimport { Param } from '../params/param';\n/**\n * A node in a [[TreeChanges]] path\n *\n * For a [[TreeChanges]] path, this class holds the stateful information for a single node in the path.\n * Each PathNode corresponds to a state being entered, exited, or retained.\n * The stateful information includes parameter values and resolve data.\n */\nvar PathNode = /** @class */ (function () {\n function PathNode(stateOrNode) {\n if (stateOrNode instanceof PathNode) {\n var node = stateOrNode;\n this.state = node.state;\n this.paramSchema = node.paramSchema.slice();\n this.paramValues = extend({}, node.paramValues);\n this.resolvables = node.resolvables.slice();\n this.views = node.views && node.views.slice();\n }\n else {\n var state = stateOrNode;\n this.state = state;\n this.paramSchema = state.parameters({ inherit: false });\n this.paramValues = {};\n this.resolvables = state.resolvables.map(function (res) { return res.clone(); });\n }\n }\n PathNode.prototype.clone = function () {\n return new PathNode(this);\n };\n /** Sets [[paramValues]] for the node, from the values of an object hash */\n PathNode.prototype.applyRawParams = function (params) {\n var getParamVal = function (paramDef) { return [paramDef.id, paramDef.value(params[paramDef.id])]; };\n this.paramValues = this.paramSchema.reduce(function (memo, pDef) { return applyPairs(memo, getParamVal(pDef)); }, {});\n return this;\n };\n /** Gets a specific [[Param]] metadata that belongs to the node */\n PathNode.prototype.parameter = function (name) {\n return find(this.paramSchema, propEq('id', name));\n };\n /**\n * @returns true if the state and parameter values for another PathNode are\n * equal to the state and param values for this PathNode\n */\n PathNode.prototype.equals = function (node, paramsFn) {\n var diff = this.diff(node, paramsFn);\n return diff && diff.length === 0;\n };\n /**\n * Finds Params with different parameter values on another PathNode.\n *\n * Given another node (of the same state), finds the parameter values which differ.\n * Returns the [[Param]] (schema objects) whose parameter values differ.\n *\n * Given another node for a different state, returns `false`\n *\n * @param node The node to compare to\n * @param paramsFn A function that returns which parameters should be compared.\n * @returns The [[Param]]s which differ, or null if the two nodes are for different states\n */\n PathNode.prototype.diff = function (node, paramsFn) {\n if (this.state !== node.state)\n return false;\n var params = paramsFn ? paramsFn(this) : this.paramSchema;\n return Param.changed(params, this.paramValues, node.paramValues);\n };\n /**\n * Returns a clone of the PathNode\n * @deprecated use instance method `node.clone()`\n */\n PathNode.clone = function (node) { return node.clone(); };\n return PathNode;\n}());\nexport { PathNode };\n//# sourceMappingURL=pathNode.js.map","/** @internalapi @module path */ /** */\nimport { extend, find, pick, omit, tail, mergeR, values, unnestR, inArray, arrayTuples, } from '../common/common';\nimport { prop, propEq } from '../common/hof';\nimport { TargetState } from '../state/targetState';\nimport { PathNode } from './pathNode';\n/**\n * This class contains functions which convert TargetStates, Nodes and paths from one type to another.\n */\nvar PathUtils = /** @class */ (function () {\n function PathUtils() {\n }\n /** Given a PathNode[], create an TargetState */\n PathUtils.makeTargetState = function (registry, path) {\n var state = tail(path).state;\n return new TargetState(registry, state, path.map(prop('paramValues')).reduce(mergeR, {}), {});\n };\n PathUtils.buildPath = function (targetState) {\n var toParams = targetState.params();\n return targetState.$state().path.map(function (state) { return new PathNode(state).applyRawParams(toParams); });\n };\n /** Given a fromPath: PathNode[] and a TargetState, builds a toPath: PathNode[] */\n PathUtils.buildToPath = function (fromPath, targetState) {\n var toPath = PathUtils.buildPath(targetState);\n if (targetState.options().inherit) {\n return PathUtils.inheritParams(fromPath, toPath, Object.keys(targetState.params()));\n }\n return toPath;\n };\n /**\n * Creates ViewConfig objects and adds to nodes.\n *\n * On each [[PathNode]], creates ViewConfig objects from the views: property of the node's state\n */\n PathUtils.applyViewConfigs = function ($view, path, states) {\n // Only apply the viewConfigs to the nodes for the given states\n path\n .filter(function (node) { return inArray(states, node.state); })\n .forEach(function (node) {\n var viewDecls = values(node.state.views || {});\n var subPath = PathUtils.subPath(path, function (n) { return n === node; });\n var viewConfigs = viewDecls.map(function (view) { return $view.createViewConfig(subPath, view); });\n node.views = viewConfigs.reduce(unnestR, []);\n });\n };\n /**\n * Given a fromPath and a toPath, returns a new to path which inherits parameters from the fromPath\n *\n * For a parameter in a node to be inherited from the from path:\n * - The toPath's node must have a matching node in the fromPath (by state).\n * - The parameter name must not be found in the toKeys parameter array.\n *\n * Note: the keys provided in toKeys are intended to be those param keys explicitly specified by some\n * caller, for instance, $state.transitionTo(..., toParams). If a key was found in toParams,\n * it is not inherited from the fromPath.\n */\n PathUtils.inheritParams = function (fromPath, toPath, toKeys) {\n if (toKeys === void 0) { toKeys = []; }\n function nodeParamVals(path, state) {\n var node = find(path, propEq('state', state));\n return extend({}, node && node.paramValues);\n }\n var noInherit = fromPath\n .map(function (node) { return node.paramSchema; })\n .reduce(unnestR, [])\n .filter(function (param) { return !param.inherit; })\n .map(prop('id'));\n /**\n * Given an [[PathNode]] \"toNode\", return a new [[PathNode]] with param values inherited from the\n * matching node in fromPath. Only inherit keys that aren't found in \"toKeys\" from the node in \"fromPath\"\"\n */\n function makeInheritedParamsNode(toNode) {\n // All param values for the node (may include default key/vals, when key was not found in toParams)\n var toParamVals = extend({}, toNode && toNode.paramValues);\n // limited to only those keys found in toParams\n var incomingParamVals = pick(toParamVals, toKeys);\n toParamVals = omit(toParamVals, toKeys);\n var fromParamVals = omit(nodeParamVals(fromPath, toNode.state) || {}, noInherit);\n // extend toParamVals with any fromParamVals, then override any of those those with incomingParamVals\n var ownParamVals = extend(toParamVals, fromParamVals, incomingParamVals);\n return new PathNode(toNode.state).applyRawParams(ownParamVals);\n }\n // The param keys specified by the incoming toParams\n return toPath.map(makeInheritedParamsNode);\n };\n /**\n * Computes the tree changes (entering, exiting) between a fromPath and toPath.\n */\n PathUtils.treeChanges = function (fromPath, toPath, reloadState) {\n var max = Math.min(fromPath.length, toPath.length);\n var keep = 0;\n var nodesMatch = function (node1, node2) { return node1.equals(node2, PathUtils.nonDynamicParams); };\n while (keep < max && fromPath[keep].state !== reloadState && nodesMatch(fromPath[keep], toPath[keep])) {\n keep++;\n }\n /** Given a retained node, return a new node which uses the to node's param values */\n function applyToParams(retainedNode, idx) {\n var cloned = retainedNode.clone();\n cloned.paramValues = toPath[idx].paramValues;\n return cloned;\n }\n var from, retained, exiting, entering, to;\n from = fromPath;\n retained = from.slice(0, keep);\n exiting = from.slice(keep);\n // Create a new retained path (with shallow copies of nodes) which have the params of the toPath mapped\n var retainedWithToParams = retained.map(applyToParams);\n entering = toPath.slice(keep);\n to = retainedWithToParams.concat(entering);\n return { from: from, to: to, retained: retained, retainedWithToParams: retainedWithToParams, exiting: exiting, entering: entering };\n };\n /**\n * Returns a new path which is: the subpath of the first path which matches the second path.\n *\n * The new path starts from root and contains any nodes that match the nodes in the second path.\n * It stops before the first non-matching node.\n *\n * Nodes are compared using their state property and their parameter values.\n * If a `paramsFn` is provided, only the [[Param]] returned by the function will be considered when comparing nodes.\n *\n * @param pathA the first path\n * @param pathB the second path\n * @param paramsFn a function which returns the parameters to consider when comparing\n *\n * @returns an array of PathNodes from the first path which match the nodes in the second path\n */\n PathUtils.matching = function (pathA, pathB, paramsFn) {\n var done = false;\n var tuples = arrayTuples(pathA, pathB);\n return tuples.reduce(function (matching, _a) {\n var nodeA = _a[0], nodeB = _a[1];\n done = done || !nodeA.equals(nodeB, paramsFn);\n return done ? matching : matching.concat(nodeA);\n }, []);\n };\n /**\n * Returns true if two paths are identical.\n *\n * @param pathA\n * @param pathB\n * @param paramsFn a function which returns the parameters to consider when comparing\n * @returns true if the the states and parameter values for both paths are identical\n */\n PathUtils.equals = function (pathA, pathB, paramsFn) {\n return pathA.length === pathB.length && PathUtils.matching(pathA, pathB, paramsFn).length === pathA.length;\n };\n /**\n * Return a subpath of a path, which stops at the first matching node\n *\n * Given an array of nodes, returns a subset of the array starting from the first node,\n * stopping when the first node matches the predicate.\n *\n * @param path a path of [[PathNode]]s\n * @param predicate a [[Predicate]] fn that matches [[PathNode]]s\n * @returns a subpath up to the matching node, or undefined if no match is found\n */\n PathUtils.subPath = function (path, predicate) {\n var node = find(path, predicate);\n var elementIdx = path.indexOf(node);\n return elementIdx === -1 ? undefined : path.slice(0, elementIdx + 1);\n };\n PathUtils.nonDynamicParams = function (node) {\n return node.state.parameters({ inherit: false }).filter(function (param) { return !param.dynamic; });\n };\n /** Gets the raw parameter values from a path */\n PathUtils.paramValues = function (path) { return path.reduce(function (acc, node) { return extend(acc, node.paramValues); }, {}); };\n return PathUtils;\n}());\nexport { PathUtils };\n//# sourceMappingURL=pathUtils.js.map","/** @publicapi @module resolve */ /** */\nexport * from './interface';\nexport * from './resolvable';\nexport * from './resolveContext';\n//# sourceMappingURL=index.js.map","/** @internalapi */\nexport var resolvePolicies = {\n when: {\n LAZY: 'LAZY',\n EAGER: 'EAGER',\n },\n async: {\n WAIT: 'WAIT',\n NOWAIT: 'NOWAIT',\n RXWAIT: 'RXWAIT',\n },\n};\n//# sourceMappingURL=interface.js.map","/** @publicapi @module resolve */ /** */\nimport { extend, identity } from '../common/common';\nimport { services } from '../common/coreservices';\nimport { trace } from '../common/trace';\nimport { stringify } from '../common/strings';\nimport { isFunction, isObject } from '../common/predicates';\nimport { isNullOrUndefined } from '../common/predicates';\n// TODO: explicitly make this user configurable\nexport var defaultResolvePolicy = {\n when: 'LAZY',\n async: 'WAIT',\n};\n/**\n * The basic building block for the resolve system.\n *\n * Resolvables encapsulate a state's resolve's resolveFn, the resolveFn's declared dependencies, the wrapped (.promise),\n * and the unwrapped-when-complete (.data) result of the resolveFn.\n *\n * Resolvable.get() either retrieves the Resolvable's existing promise, or else invokes resolve() (which invokes the\n * resolveFn) and returns the resulting promise.\n *\n * Resolvable.get() and Resolvable.resolve() both execute within a context path, which is passed as the first\n * parameter to those fns.\n */\nvar Resolvable = /** @class */ (function () {\n function Resolvable(arg1, resolveFn, deps, policy, data) {\n this.resolved = false;\n this.promise = undefined;\n if (arg1 instanceof Resolvable) {\n extend(this, arg1);\n }\n else if (isFunction(resolveFn)) {\n if (isNullOrUndefined(arg1))\n throw new Error('new Resolvable(): token argument is required');\n if (!isFunction(resolveFn))\n throw new Error('new Resolvable(): resolveFn argument must be a function');\n this.token = arg1;\n this.policy = policy;\n this.resolveFn = resolveFn;\n this.deps = deps || [];\n this.data = data;\n this.resolved = data !== undefined;\n this.promise = this.resolved ? services.$q.when(this.data) : undefined;\n }\n else if (isObject(arg1) && arg1.token && (arg1.hasOwnProperty('resolveFn') || arg1.hasOwnProperty('data'))) {\n var literal = arg1;\n return new Resolvable(literal.token, literal.resolveFn, literal.deps, literal.policy, literal.data);\n }\n }\n Resolvable.prototype.getPolicy = function (state) {\n var thisPolicy = this.policy || {};\n var statePolicy = (state && state.resolvePolicy) || {};\n return {\n when: thisPolicy.when || statePolicy.when || defaultResolvePolicy.when,\n async: thisPolicy.async || statePolicy.async || defaultResolvePolicy.async,\n };\n };\n /**\n * Asynchronously resolve this Resolvable's data\n *\n * Given a ResolveContext that this Resolvable is found in:\n * Wait for this Resolvable's dependencies, then invoke this Resolvable's function\n * and update the Resolvable's state\n */\n Resolvable.prototype.resolve = function (resolveContext, trans) {\n var _this = this;\n var $q = services.$q;\n // Gets all dependencies from ResolveContext and wait for them to be resolved\n var getResolvableDependencies = function () {\n return $q.all(resolveContext.getDependencies(_this).map(function (resolvable) { return resolvable.get(resolveContext, trans); }));\n };\n // Invokes the resolve function passing the resolved dependencies as arguments\n var invokeResolveFn = function (resolvedDeps) { return _this.resolveFn.apply(null, resolvedDeps); };\n /**\n * For RXWAIT policy:\n *\n * Given an observable returned from a resolve function:\n * - enables .cache() mode (this allows multicast subscribers)\n * - then calls toPromise() (this triggers subscribe() and thus fetches)\n * - Waits for the promise, then return the cached observable (not the first emitted value).\n */\n var waitForRx = function (observable$) {\n var cached = observable$.cache(1);\n return cached\n .take(1)\n .toPromise()\n .then(function () { return cached; });\n };\n // If the resolve policy is RXWAIT, wait for the observable to emit something. otherwise pass through.\n var node = resolveContext.findNode(this);\n var state = node && node.state;\n var maybeWaitForRx = this.getPolicy(state).async === 'RXWAIT' ? waitForRx : identity;\n // After the final value has been resolved, update the state of the Resolvable\n var applyResolvedValue = function (resolvedValue) {\n _this.data = resolvedValue;\n _this.resolved = true;\n _this.resolveFn = null;\n trace.traceResolvableResolved(_this, trans);\n return _this.data;\n };\n // Sets the promise property first, then getsResolvableDependencies in the context of the promise chain. Always waits one tick.\n return (this.promise = $q\n .when()\n .then(getResolvableDependencies)\n .then(invokeResolveFn)\n .then(maybeWaitForRx)\n .then(applyResolvedValue));\n };\n /**\n * Gets a promise for this Resolvable's data.\n *\n * Fetches the data and returns a promise.\n * Returns the existing promise if it has already been fetched once.\n */\n Resolvable.prototype.get = function (resolveContext, trans) {\n return this.promise || this.resolve(resolveContext, trans);\n };\n Resolvable.prototype.toString = function () {\n return \"Resolvable(token: \" + stringify(this.token) + \", requires: [\" + this.deps.map(stringify) + \"])\";\n };\n Resolvable.prototype.clone = function () {\n return new Resolvable(this);\n };\n Resolvable.fromData = function (token, data) { return new Resolvable(token, function () { return data; }, null, null, data); };\n return Resolvable;\n}());\nexport { Resolvable };\n//# sourceMappingURL=resolvable.js.map","/** @publicapi @module resolve */ /** */\nimport { find, tail, uniqR, unnestR, inArray } from '../common/common';\nimport { propEq, not } from '../common/hof';\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { resolvePolicies } from './interface';\nimport { Resolvable } from './resolvable';\nimport { PathUtils } from '../path/pathUtils';\nimport { stringify } from '../common/strings';\nimport { isUndefined } from '../common';\nvar whens = resolvePolicies.when;\nvar ALL_WHENS = [whens.EAGER, whens.LAZY];\nvar EAGER_WHENS = [whens.EAGER];\n// tslint:disable-next-line:no-inferrable-types\nexport var NATIVE_INJECTOR_TOKEN = 'Native Injector';\n/**\n * Encapsulates Dependency Injection for a path of nodes\n *\n * UI-Router states are organized as a tree.\n * A nested state has a path of ancestors to the root of the tree.\n * When a state is being activated, each element in the path is wrapped as a [[PathNode]].\n * A `PathNode` is a stateful object that holds things like parameters and resolvables for the state being activated.\n *\n * The ResolveContext closes over the [[PathNode]]s, and provides DI for the last node in the path.\n */\nvar ResolveContext = /** @class */ (function () {\n function ResolveContext(_path) {\n this._path = _path;\n }\n /** Gets all the tokens found in the resolve context, de-duplicated */\n ResolveContext.prototype.getTokens = function () {\n return this._path.reduce(function (acc, node) { return acc.concat(node.resolvables.map(function (r) { return r.token; })); }, []).reduce(uniqR, []);\n };\n /**\n * Gets the Resolvable that matches the token\n *\n * Gets the last Resolvable that matches the token in this context, or undefined.\n * Throws an error if it doesn't exist in the ResolveContext\n */\n ResolveContext.prototype.getResolvable = function (token) {\n var matching = this._path\n .map(function (node) { return node.resolvables; })\n .reduce(unnestR, [])\n .filter(function (r) { return r.token === token; });\n return tail(matching);\n };\n /** Returns the [[ResolvePolicy]] for the given [[Resolvable]] */\n ResolveContext.prototype.getPolicy = function (resolvable) {\n var node = this.findNode(resolvable);\n return resolvable.getPolicy(node.state);\n };\n /**\n * Returns a ResolveContext that includes a portion of this one\n *\n * Given a state, this method creates a new ResolveContext from this one.\n * The new context starts at the first node (root) and stops at the node for the `state` parameter.\n *\n * #### Why\n *\n * When a transition is created, the nodes in the \"To Path\" are injected from a ResolveContext.\n * A ResolveContext closes over a path of [[PathNode]]s and processes the resolvables.\n * The \"To State\" can inject values from its own resolvables, as well as those from all its ancestor state's (node's).\n * This method is used to create a narrower context when injecting ancestor nodes.\n *\n * @example\n * `let ABCD = new ResolveContext([A, B, C, D]);`\n *\n * Given a path `[A, B, C, D]`, where `A`, `B`, `C` and `D` are nodes for states `a`, `b`, `c`, `d`:\n * When injecting `D`, `D` should have access to all resolvables from `A`, `B`, `C`, `D`.\n * However, `B` should only be able to access resolvables from `A`, `B`.\n *\n * When resolving for the `B` node, first take the full \"To Path\" Context `[A,B,C,D]` and limit to the subpath `[A,B]`.\n * `let AB = ABCD.subcontext(a)`\n */\n ResolveContext.prototype.subContext = function (state) {\n return new ResolveContext(PathUtils.subPath(this._path, function (node) { return node.state === state; }));\n };\n /**\n * Adds Resolvables to the node that matches the state\n *\n * This adds a [[Resolvable]] (generally one created on the fly; not declared on a [[StateDeclaration.resolve]] block).\n * The resolvable is added to the node matching the `state` parameter.\n *\n * These new resolvables are not automatically fetched.\n * The calling code should either fetch them, fetch something that depends on them,\n * or rely on [[resolvePath]] being called when some state is being entered.\n *\n * Note: each resolvable's [[ResolvePolicy]] is merged with the state's policy, and the global default.\n *\n * @param newResolvables the new Resolvables\n * @param state Used to find the node to put the resolvable on\n */\n ResolveContext.prototype.addResolvables = function (newResolvables, state) {\n var node = find(this._path, propEq('state', state));\n var keys = newResolvables.map(function (r) { return r.token; });\n node.resolvables = node.resolvables.filter(function (r) { return keys.indexOf(r.token) === -1; }).concat(newResolvables);\n };\n /**\n * Returns a promise for an array of resolved path Element promises\n *\n * @param when\n * @param trans\n * @returns {Promise|any}\n */\n ResolveContext.prototype.resolvePath = function (when, trans) {\n var _this = this;\n if (when === void 0) { when = 'LAZY'; }\n // This option determines which 'when' policy Resolvables we are about to fetch.\n var whenOption = inArray(ALL_WHENS, when) ? when : 'LAZY';\n // If the caller specified EAGER, only the EAGER Resolvables are fetched.\n // if the caller specified LAZY, both EAGER and LAZY Resolvables are fetched.`\n var matchedWhens = whenOption === resolvePolicies.when.EAGER ? EAGER_WHENS : ALL_WHENS;\n // get the subpath to the state argument, if provided\n trace.traceResolvePath(this._path, when, trans);\n var matchesPolicy = function (acceptedVals, whenOrAsync) { return function (resolvable) {\n return inArray(acceptedVals, _this.getPolicy(resolvable)[whenOrAsync]);\n }; };\n // Trigger all the (matching) Resolvables in the path\n // Reduce all the \"WAIT\" Resolvables into an array\n var promises = this._path.reduce(function (acc, node) {\n var nodeResolvables = node.resolvables.filter(matchesPolicy(matchedWhens, 'when'));\n var nowait = nodeResolvables.filter(matchesPolicy(['NOWAIT'], 'async'));\n var wait = nodeResolvables.filter(not(matchesPolicy(['NOWAIT'], 'async')));\n // For the matching Resolvables, start their async fetch process.\n var subContext = _this.subContext(node.state);\n var getResult = function (r) {\n return r\n .get(subContext, trans)\n // Return a tuple that includes the Resolvable's token\n .then(function (value) { return ({ token: r.token, value: value }); });\n };\n nowait.forEach(getResult);\n return acc.concat(wait.map(getResult));\n }, []);\n // Wait for all the \"WAIT\" resolvables\n return services.$q.all(promises);\n };\n ResolveContext.prototype.injector = function () {\n return this._injector || (this._injector = new UIInjectorImpl(this));\n };\n ResolveContext.prototype.findNode = function (resolvable) {\n return find(this._path, function (node) { return inArray(node.resolvables, resolvable); });\n };\n /**\n * Gets the async dependencies of a Resolvable\n *\n * Given a Resolvable, returns its dependencies as a Resolvable[]\n */\n ResolveContext.prototype.getDependencies = function (resolvable) {\n var _this = this;\n var node = this.findNode(resolvable);\n // Find which other resolvables are \"visible\" to the `resolvable` argument\n // subpath stopping at resolvable's node, or the whole path (if the resolvable isn't in the path)\n var subPath = PathUtils.subPath(this._path, function (x) { return x === node; }) || this._path;\n var availableResolvables = subPath\n .reduce(function (acc, _node) { return acc.concat(_node.resolvables); }, []) // all of subpath's resolvables\n .filter(function (res) { return res !== resolvable; }); // filter out the `resolvable` argument\n var getDependency = function (token) {\n var matching = availableResolvables.filter(function (r) { return r.token === token; });\n if (matching.length)\n return tail(matching);\n var fromInjector = _this.injector().getNative(token);\n if (isUndefined(fromInjector)) {\n throw new Error('Could not find Dependency Injection token: ' + stringify(token));\n }\n return new Resolvable(token, function () { return fromInjector; }, [], fromInjector);\n };\n return resolvable.deps.map(getDependency);\n };\n return ResolveContext;\n}());\nexport { ResolveContext };\n/** @internalapi */\nvar UIInjectorImpl = /** @class */ (function () {\n function UIInjectorImpl(context) {\n this.context = context;\n this.native = this.get(NATIVE_INJECTOR_TOKEN) || services.$injector;\n }\n UIInjectorImpl.prototype.get = function (token) {\n var resolvable = this.context.getResolvable(token);\n if (resolvable) {\n if (this.context.getPolicy(resolvable).async === 'NOWAIT') {\n return resolvable.get(this.context);\n }\n if (!resolvable.resolved) {\n throw new Error('Resolvable async .get() not complete:' + stringify(resolvable.token));\n }\n return resolvable.data;\n }\n return this.getNative(token);\n };\n UIInjectorImpl.prototype.getAsync = function (token) {\n var resolvable = this.context.getResolvable(token);\n if (resolvable)\n return resolvable.get(this.context);\n return services.$q.when(this.native.get(token));\n };\n UIInjectorImpl.prototype.getNative = function (token) {\n return this.native && this.native.get(token);\n };\n return UIInjectorImpl;\n}());\n//# sourceMappingURL=resolveContext.js.map","/** @publicapi @module core */ /** */\nimport { UrlMatcherFactory } from './url/urlMatcherFactory';\nimport { UrlRouter } from './url/urlRouter';\nimport { TransitionService } from './transition/transitionService';\nimport { ViewService } from './view/view';\nimport { StateRegistry } from './state/stateRegistry';\nimport { StateService } from './state/stateService';\nimport { UIRouterGlobals } from './globals';\nimport { values, removeFrom } from './common/common';\nimport { isFunction } from './common/predicates';\nimport { UrlService } from './url/urlService';\nimport { trace } from './common/trace';\nimport { makeStub } from './common';\n/** @hidden */\nvar _routerInstance = 0;\n/** @hidden */\nvar locSvcFns = ['url', 'path', 'search', 'hash', 'onChange'];\n/** @hidden */\nvar locCfgFns = ['port', 'protocol', 'host', 'baseHref', 'html5Mode', 'hashPrefix'];\n/** @hidden */\nvar locationServiceStub = makeStub('LocationServices', locSvcFns);\n/** @hidden */\nvar locationConfigStub = makeStub('LocationConfig', locCfgFns);\n/**\n * The master class used to instantiate an instance of UI-Router.\n *\n * UI-Router (for each specific framework) will create an instance of this class during bootstrap.\n * This class instantiates and wires the UI-Router services together.\n *\n * After a new instance of the UIRouter class is created, it should be configured for your app.\n * For instance, app states should be registered with the [[UIRouter.stateRegistry]].\n *\n * ---\n *\n * Normally the framework code will bootstrap UI-Router.\n * If you are bootstrapping UIRouter manually, tell it to monitor the URL by calling\n * [[UrlService.listen]] then [[UrlService.sync]].\n */\nvar UIRouter = /** @class */ (function () {\n /**\n * Creates a new `UIRouter` object\n *\n * @param locationService a [[LocationServices]] implementation\n * @param locationConfig a [[LocationConfig]] implementation\n * @internalapi\n */\n function UIRouter(locationService, locationConfig) {\n if (locationService === void 0) { locationService = locationServiceStub; }\n if (locationConfig === void 0) { locationConfig = locationConfigStub; }\n this.locationService = locationService;\n this.locationConfig = locationConfig;\n /** @hidden */ this.$id = _routerInstance++;\n /** @hidden */ this._disposed = false;\n /** @hidden */ this._disposables = [];\n /** Provides trace information to the console */\n this.trace = trace;\n /** Provides services related to ui-view synchronization */\n this.viewService = new ViewService(this);\n /** Global router state */\n this.globals = new UIRouterGlobals();\n /** Provides services related to Transitions */\n this.transitionService = new TransitionService(this);\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n this.urlMatcherFactory = new UrlMatcherFactory(this);\n /**\n * Deprecated for public use. Use [[urlService]] instead.\n * @deprecated Use [[urlService]] instead\n */\n this.urlRouter = new UrlRouter(this);\n /** Provides services related to the URL */\n this.urlService = new UrlService(this);\n /** Provides a registry for states, and related registration services */\n this.stateRegistry = new StateRegistry(this);\n /** Provides services related to states */\n this.stateService = new StateService(this);\n /** @hidden plugin instances are registered here */\n this._plugins = {};\n this.viewService._pluginapi._rootViewContext(this.stateRegistry.root());\n this.globals.$current = this.stateRegistry.root();\n this.globals.current = this.globals.$current.self;\n this.disposable(this.globals);\n this.disposable(this.stateService);\n this.disposable(this.stateRegistry);\n this.disposable(this.transitionService);\n this.disposable(this.urlService);\n this.disposable(locationService);\n this.disposable(locationConfig);\n }\n /** Registers an object to be notified when the router is disposed */\n UIRouter.prototype.disposable = function (disposable) {\n this._disposables.push(disposable);\n };\n /**\n * Disposes this router instance\n *\n * When called, clears resources retained by the router by calling `dispose(this)` on all\n * registered [[disposable]] objects.\n *\n * Or, if a `disposable` object is provided, calls `dispose(this)` on that object only.\n *\n * @param disposable (optional) the disposable to dispose\n */\n UIRouter.prototype.dispose = function (disposable) {\n var _this = this;\n if (disposable && isFunction(disposable.dispose)) {\n disposable.dispose(this);\n return undefined;\n }\n this._disposed = true;\n this._disposables.slice().forEach(function (d) {\n try {\n typeof d.dispose === 'function' && d.dispose(_this);\n removeFrom(_this._disposables, d);\n }\n catch (ignored) { }\n });\n };\n /**\n * Adds a plugin to UI-Router\n *\n * This method adds a UI-Router Plugin.\n * A plugin can enhance or change UI-Router behavior using any public API.\n *\n * #### Example:\n * ```js\n * import { MyCoolPlugin } from \"ui-router-cool-plugin\";\n *\n * var plugin = router.addPlugin(MyCoolPlugin);\n * ```\n *\n * ### Plugin authoring\n *\n * A plugin is simply a class (or constructor function) which accepts a [[UIRouter]] instance and (optionally) an options object.\n *\n * The plugin can implement its functionality using any of the public APIs of [[UIRouter]].\n * For example, it may configure router options or add a Transition Hook.\n *\n * The plugin can then be published as a separate module.\n *\n * #### Example:\n * ```js\n * export class MyAuthPlugin implements UIRouterPlugin {\n * constructor(router: UIRouter, options: any) {\n * this.name = \"MyAuthPlugin\";\n * let $transitions = router.transitionService;\n * let $state = router.stateService;\n *\n * let authCriteria = {\n * to: (state) => state.data && state.data.requiresAuth\n * };\n *\n * function authHook(transition: Transition) {\n * let authService = transition.injector().get('AuthService');\n * if (!authService.isAuthenticated()) {\n * return $state.target('login');\n * }\n * }\n *\n * $transitions.onStart(authCriteria, authHook);\n * }\n * }\n * ```\n *\n * @param plugin one of:\n * - a plugin class which implements [[UIRouterPlugin]]\n * - a constructor function for a [[UIRouterPlugin]] which accepts a [[UIRouter]] instance\n * - a factory function which accepts a [[UIRouter]] instance and returns a [[UIRouterPlugin]] instance\n * @param options options to pass to the plugin class/factory\n * @returns the registered plugin instance\n */\n UIRouter.prototype.plugin = function (plugin, options) {\n if (options === void 0) { options = {}; }\n var pluginInstance = new plugin(this, options);\n if (!pluginInstance.name)\n throw new Error('Required property `name` missing on plugin: ' + pluginInstance);\n this._disposables.push(pluginInstance);\n return (this._plugins[pluginInstance.name] = pluginInstance);\n };\n UIRouter.prototype.getPlugin = function (pluginName) {\n return pluginName ? this._plugins[pluginName] : values(this._plugins);\n };\n return UIRouter;\n}());\nexport { UIRouter };\n//# sourceMappingURL=router.js.map","export * from './stateBuilder';\nexport * from './stateObject';\nexport * from './stateMatcher';\nexport * from './stateQueueManager';\nexport * from './stateRegistry';\nexport * from './stateService';\nexport * from './targetState';\n//# sourceMappingURL=index.js.map","/** @publicapi @module state */ /** */\nimport { applyPairs, extend, identity, inherit, mapObj, noop, omit, tail, values, copy } from '../common/common';\nimport { isArray, isDefined, isFunction, isString } from '../common/predicates';\nimport { stringify } from '../common/strings';\nimport { is, pattern, pipe, prop, val } from '../common/hof';\nimport { Resolvable } from '../resolve/resolvable';\nimport { services } from '../common/coreservices';\nvar parseUrl = function (url) {\n if (!isString(url))\n return false;\n var root = url.charAt(0) === '^';\n return { val: root ? url.substring(1) : url, root: root };\n};\nfunction nameBuilder(state) {\n return state.name;\n}\nfunction selfBuilder(state) {\n state.self.$$state = function () { return state; };\n return state.self;\n}\nfunction dataBuilder(state) {\n if (state.parent && state.parent.data) {\n state.data = state.self.data = inherit(state.parent.data, state.data);\n }\n return state.data;\n}\nvar getUrlBuilder = function ($urlMatcherFactoryProvider, root) {\n return function urlBuilder(stateObject) {\n var stateDec = stateObject.self;\n // For future states, i.e., states whose name ends with `.**`,\n // match anything that starts with the url prefix\n if (stateDec && stateDec.url && stateDec.name && stateDec.name.match(/\\.\\*\\*$/)) {\n var newStateDec = {};\n copy(stateDec, newStateDec);\n newStateDec.url += '{remainder:any}'; // match any path (.*)\n stateDec = newStateDec;\n }\n var parent = stateObject.parent;\n var parsed = parseUrl(stateDec.url);\n var url = !parsed ? stateDec.url : $urlMatcherFactoryProvider.compile(parsed.val, { state: stateDec });\n if (!url)\n return null;\n if (!$urlMatcherFactoryProvider.isMatcher(url))\n throw new Error(\"Invalid url '\" + url + \"' in state '\" + stateObject + \"'\");\n return parsed && parsed.root ? url : ((parent && parent.navigable) || root()).url.append(url);\n };\n};\nvar getNavigableBuilder = function (isRoot) {\n return function navigableBuilder(state) {\n return !isRoot(state) && state.url ? state : state.parent ? state.parent.navigable : null;\n };\n};\nvar getParamsBuilder = function (paramFactory) {\n return function paramsBuilder(state) {\n var makeConfigParam = function (config, id) { return paramFactory.fromConfig(id, null, state.self); };\n var urlParams = (state.url && state.url.parameters({ inherit: false })) || [];\n var nonUrlParams = values(mapObj(omit(state.params || {}, urlParams.map(prop('id'))), makeConfigParam));\n return urlParams\n .concat(nonUrlParams)\n .map(function (p) { return [p.id, p]; })\n .reduce(applyPairs, {});\n };\n};\nfunction pathBuilder(state) {\n return state.parent ? state.parent.path.concat(state) : /*root*/ [state];\n}\nfunction includesBuilder(state) {\n var includes = state.parent ? extend({}, state.parent.includes) : {};\n includes[state.name] = true;\n return includes;\n}\n/**\n * This is a [[StateBuilder.builder]] function for the `resolve:` block on a [[StateDeclaration]].\n *\n * When the [[StateBuilder]] builds a [[StateObject]] object from a raw [[StateDeclaration]], this builder\n * validates the `resolve` property and converts it to a [[Resolvable]] array.\n *\n * resolve: input value can be:\n *\n * {\n * // analyzed but not injected\n * myFooResolve: function() { return \"myFooData\"; },\n *\n * // function.toString() parsed, \"DependencyName\" dep as string (not min-safe)\n * myBarResolve: function(DependencyName) { return DependencyName.fetchSomethingAsPromise() },\n *\n * // Array split; \"DependencyName\" dep as string\n * myBazResolve: [ \"DependencyName\", function(dep) { return dep.fetchSomethingAsPromise() },\n *\n * // Array split; DependencyType dep as token (compared using ===)\n * myQuxResolve: [ DependencyType, function(dep) { return dep.fetchSometingAsPromise() },\n *\n * // val.$inject used as deps\n * // where:\n * // corgeResolve.$inject = [\"DependencyName\"];\n * // function corgeResolve(dep) { dep.fetchSometingAsPromise() }\n * // then \"DependencyName\" dep as string\n * myCorgeResolve: corgeResolve,\n *\n * // inject service by name\n * // When a string is found, desugar creating a resolve that injects the named service\n * myGraultResolve: \"SomeService\"\n * }\n *\n * or:\n *\n * [\n * new Resolvable(\"myFooResolve\", function() { return \"myFooData\" }),\n * new Resolvable(\"myBarResolve\", function(dep) { return dep.fetchSomethingAsPromise() }, [ \"DependencyName\" ]),\n * { provide: \"myBazResolve\", useFactory: function(dep) { dep.fetchSomethingAsPromise() }, deps: [ \"DependencyName\" ] }\n * ]\n */\nexport function resolvablesBuilder(state) {\n /** convert resolve: {} and resolvePolicy: {} objects to an array of tuples */\n var objects2Tuples = function (resolveObj, resolvePolicies) {\n return Object.keys(resolveObj || {}).map(function (token) { return ({\n token: token,\n val: resolveObj[token],\n deps: undefined,\n policy: resolvePolicies[token],\n }); });\n };\n /** fetch DI annotations from a function or ng1-style array */\n var annotate = function (fn) {\n var $injector = services.$injector;\n // ng1 doesn't have an $injector until runtime.\n // If the $injector doesn't exist, use \"deferred\" literal as a\n // marker indicating they should be annotated when runtime starts\n return fn['$inject'] || ($injector && $injector.annotate(fn, $injector.strictDi)) || 'deferred';\n };\n /** true if the object has both `token` and `resolveFn`, and is probably a [[ResolveLiteral]] */\n var isResolveLiteral = function (obj) { return !!(obj.token && obj.resolveFn); };\n /** true if the object looks like a provide literal, or a ng2 Provider */\n var isLikeNg2Provider = function (obj) {\n return !!((obj.provide || obj.token) && (obj.useValue || obj.useFactory || obj.useExisting || obj.useClass));\n };\n /** true if the object looks like a tuple from obj2Tuples */\n var isTupleFromObj = function (obj) {\n return !!(obj && obj.val && (isString(obj.val) || isArray(obj.val) || isFunction(obj.val)));\n };\n /** extracts the token from a Provider or provide literal */\n var getToken = function (p) { return p.provide || p.token; };\n // prettier-ignore: Given a literal resolve or provider object, returns a Resolvable\n var literal2Resolvable = pattern([\n [prop('resolveFn'), function (p) { return new Resolvable(getToken(p), p.resolveFn, p.deps, p.policy); }],\n [prop('useFactory'), function (p) { return new Resolvable(getToken(p), p.useFactory, p.deps || p.dependencies, p.policy); }],\n [prop('useClass'), function (p) { return new Resolvable(getToken(p), function () { return new p.useClass(); }, [], p.policy); }],\n [prop('useValue'), function (p) { return new Resolvable(getToken(p), function () { return p.useValue; }, [], p.policy, p.useValue); }],\n [prop('useExisting'), function (p) { return new Resolvable(getToken(p), identity, [p.useExisting], p.policy); }],\n ]);\n // prettier-ignore\n var tuple2Resolvable = pattern([\n [pipe(prop('val'), isString), function (tuple) { return new Resolvable(tuple.token, identity, [tuple.val], tuple.policy); }],\n [pipe(prop('val'), isArray), function (tuple) { return new Resolvable(tuple.token, tail(tuple.val), tuple.val.slice(0, -1), tuple.policy); }],\n [pipe(prop('val'), isFunction), function (tuple) { return new Resolvable(tuple.token, tuple.val, annotate(tuple.val), tuple.policy); }],\n ]);\n // prettier-ignore\n var item2Resolvable = pattern([\n [is(Resolvable), function (r) { return r; }],\n [isResolveLiteral, literal2Resolvable],\n [isLikeNg2Provider, literal2Resolvable],\n [isTupleFromObj, tuple2Resolvable],\n [val(true), function (obj) { throw new Error('Invalid resolve value: ' + stringify(obj)); },],\n ]);\n // If resolveBlock is already an array, use it as-is.\n // Otherwise, assume it's an object and convert to an Array of tuples\n var decl = state.resolve;\n var items = isArray(decl) ? decl : objects2Tuples(decl, state.resolvePolicy || {});\n return items.map(item2Resolvable);\n}\n/**\n * @internalapi A internal global service\n *\n * StateBuilder is a factory for the internal [[StateObject]] objects.\n *\n * When you register a state with the [[StateRegistry]], you register a plain old javascript object which\n * conforms to the [[StateDeclaration]] interface. This factory takes that object and builds the corresponding\n * [[StateObject]] object, which has an API and is used internally.\n *\n * Custom properties or API may be added to the internal [[StateObject]] object by registering a decorator function\n * using the [[builder]] method.\n */\nvar StateBuilder = /** @class */ (function () {\n function StateBuilder(matcher, urlMatcherFactory) {\n this.matcher = matcher;\n var self = this;\n var root = function () { return matcher.find(''); };\n var isRoot = function (state) { return state.name === ''; };\n function parentBuilder(state) {\n if (isRoot(state))\n return null;\n return matcher.find(self.parentName(state)) || root();\n }\n this.builders = {\n name: [nameBuilder],\n self: [selfBuilder],\n parent: [parentBuilder],\n data: [dataBuilder],\n // Build a URLMatcher if necessary, either via a relative or absolute URL\n url: [getUrlBuilder(urlMatcherFactory, root)],\n // Keep track of the closest ancestor state that has a URL (i.e. is navigable)\n navigable: [getNavigableBuilder(isRoot)],\n params: [getParamsBuilder(urlMatcherFactory.paramFactory)],\n // Each framework-specific ui-router implementation should define its own `views` builder\n // e.g., src/ng1/statebuilders/views.ts\n views: [],\n // Keep a full path from the root down to this state as this is needed for state activation.\n path: [pathBuilder],\n // Speed up $state.includes() as it's used a lot\n includes: [includesBuilder],\n resolvables: [resolvablesBuilder],\n };\n }\n /**\n * Registers a [[BuilderFunction]] for a specific [[StateObject]] property (e.g., `parent`, `url`, or `path`).\n * More than one BuilderFunction can be registered for a given property.\n *\n * The BuilderFunction(s) will be used to define the property on any subsequently built [[StateObject]] objects.\n *\n * @param name The name of the State property being registered for.\n * @param fn The BuilderFunction which will be used to build the State property\n * @returns a function which deregisters the BuilderFunction\n */\n StateBuilder.prototype.builder = function (name, fn) {\n var builders = this.builders;\n var array = builders[name] || [];\n // Backwards compat: if only one builder exists, return it, else return whole arary.\n if (isString(name) && !isDefined(fn))\n return array.length > 1 ? array : array[0];\n if (!isString(name) || !isFunction(fn))\n return;\n builders[name] = array;\n builders[name].push(fn);\n return function () { return builders[name].splice(builders[name].indexOf(fn, 1)) && null; };\n };\n /**\n * Builds all of the properties on an essentially blank State object, returning a State object which has all its\n * properties and API built.\n *\n * @param state an uninitialized State object\n * @returns the built State object\n */\n StateBuilder.prototype.build = function (state) {\n var _a = this, matcher = _a.matcher, builders = _a.builders;\n var parent = this.parentName(state);\n if (parent && !matcher.find(parent, undefined, false)) {\n return null;\n }\n for (var key in builders) {\n if (!builders.hasOwnProperty(key))\n continue;\n var chain = builders[key].reduce(function (parentFn, step) { return function (_state) { return step(_state, parentFn); }; }, noop);\n state[key] = chain(state);\n }\n return state;\n };\n StateBuilder.prototype.parentName = function (state) {\n // name = 'foo.bar.baz.**'\n var name = state.name || '';\n // segments = ['foo', 'bar', 'baz', '.**']\n var segments = name.split('.');\n // segments = ['foo', 'bar', 'baz']\n var lastSegment = segments.pop();\n // segments = ['foo', 'bar'] (ignore .** segment for future states)\n if (lastSegment === '**')\n segments.pop();\n if (segments.length) {\n if (state.parent) {\n throw new Error(\"States that specify the 'parent:' property should not have a '.' in their name (\" + name + \")\");\n }\n // 'foo.bar'\n return segments.join('.');\n }\n if (!state.parent)\n return '';\n return isString(state.parent) ? state.parent : state.parent.name;\n };\n StateBuilder.prototype.name = function (state) {\n var name = state.name;\n if (name.indexOf('.') !== -1 || !state.parent)\n return name;\n var parentName = isString(state.parent) ? state.parent : state.parent.name;\n return parentName ? parentName + '.' + name : name;\n };\n return StateBuilder;\n}());\nexport { StateBuilder };\n//# sourceMappingURL=stateBuilder.js.map","/** @publicapi @module state */ /** */\nimport { isString } from '../common/predicates';\nimport { values } from '../common/common';\nvar StateMatcher = /** @class */ (function () {\n function StateMatcher(_states) {\n this._states = _states;\n }\n StateMatcher.prototype.isRelative = function (stateName) {\n stateName = stateName || '';\n return stateName.indexOf('.') === 0 || stateName.indexOf('^') === 0;\n };\n StateMatcher.prototype.find = function (stateOrName, base, matchGlob) {\n if (matchGlob === void 0) { matchGlob = true; }\n if (!stateOrName && stateOrName !== '')\n return undefined;\n var isStr = isString(stateOrName);\n var name = isStr ? stateOrName : stateOrName.name;\n if (this.isRelative(name))\n name = this.resolvePath(name, base);\n var state = this._states[name];\n if (state && (isStr || (!isStr && (state === stateOrName || state.self === stateOrName)))) {\n return state;\n }\n else if (isStr && matchGlob) {\n var _states = values(this._states);\n var matches = _states.filter(function (_state) { return _state.__stateObjectCache.nameGlob && _state.__stateObjectCache.nameGlob.matches(name); });\n if (matches.length > 1) {\n // tslint:disable-next-line:no-console\n console.log(\"stateMatcher.find: Found multiple matches for \" + name + \" using glob: \", matches.map(function (match) { return match.name; }));\n }\n return matches[0];\n }\n return undefined;\n };\n StateMatcher.prototype.resolvePath = function (name, base) {\n if (!base)\n throw new Error(\"No reference point given for path '\" + name + \"'\");\n var baseState = this.find(base);\n var splitName = name.split('.');\n var pathLength = splitName.length;\n var i = 0, current = baseState;\n for (; i < pathLength; i++) {\n if (splitName[i] === '' && i === 0) {\n current = baseState;\n continue;\n }\n if (splitName[i] === '^') {\n if (!current.parent)\n throw new Error(\"Path '\" + name + \"' not valid for state '\" + baseState.name + \"'\");\n current = current.parent;\n continue;\n }\n break;\n }\n var relName = splitName.slice(i).join('.');\n return current.name + (current.name && relName ? '.' : '') + relName;\n };\n return StateMatcher;\n}());\nexport { StateMatcher };\n//# sourceMappingURL=stateMatcher.js.map","import { defaults, values, find, inherit } from '../common/common';\nimport { propEq } from '../common/hof';\nimport { Glob } from '../common/glob';\nimport { isObject, isFunction } from '../common/predicates';\n/**\n * Internal representation of a UI-Router state.\n *\n * Instances of this class are created when a [[StateDeclaration]] is registered with the [[StateRegistry]].\n *\n * A registered [[StateDeclaration]] is augmented with a getter ([[StateDeclaration.$$state]]) which returns the corresponding [[StateObject]] object.\n *\n * This class prototypally inherits from the corresponding [[StateDeclaration]].\n * Each of its own properties (i.e., `hasOwnProperty`) are built using builders from the [[StateBuilder]].\n */\nvar StateObject = /** @class */ (function () {\n /** @deprecated use State.create() */\n function StateObject(config) {\n return StateObject.create(config || {});\n }\n /**\n * Create a state object to put the private/internal implementation details onto.\n * The object's prototype chain looks like:\n * (Internal State Object) -> (Copy of State.prototype) -> (State Declaration object) -> (State Declaration's prototype...)\n *\n * @param stateDecl the user-supplied State Declaration\n * @returns {StateObject} an internal State object\n */\n StateObject.create = function (stateDecl) {\n stateDecl = StateObject.isStateClass(stateDecl) ? new stateDecl() : stateDecl;\n var state = inherit(inherit(stateDecl, StateObject.prototype));\n stateDecl.$$state = function () { return state; };\n state.self = stateDecl;\n state.__stateObjectCache = {\n nameGlob: Glob.fromString(state.name),\n };\n return state;\n };\n /**\n * Returns true if the provided parameter is the same state.\n *\n * Compares the identity of the state against the passed value, which is either an object\n * reference to the actual `State` instance, the original definition object passed to\n * `$stateProvider.state()`, or the fully-qualified name.\n *\n * @param ref Can be one of (a) a `State` instance, (b) an object that was passed\n * into `$stateProvider.state()`, (c) the fully-qualified name of a state as a string.\n * @returns Returns `true` if `ref` matches the current `State` instance.\n */\n StateObject.prototype.is = function (ref) {\n return this === ref || this.self === ref || this.fqn() === ref;\n };\n /**\n * @deprecated this does not properly handle dot notation\n * @returns Returns a dot-separated name of the state.\n */\n StateObject.prototype.fqn = function () {\n if (!this.parent || !(this.parent instanceof this.constructor))\n return this.name;\n var name = this.parent.fqn();\n return name ? name + '.' + this.name : this.name;\n };\n /**\n * Returns the root node of this state's tree.\n *\n * @returns The root of this state's tree.\n */\n StateObject.prototype.root = function () {\n return (this.parent && this.parent.root()) || this;\n };\n /**\n * Gets the state's `Param` objects\n *\n * Gets the list of [[Param]] objects owned by the state.\n * If `opts.inherit` is true, it also includes the ancestor states' [[Param]] objects.\n * If `opts.matchingKeys` exists, returns only `Param`s whose `id` is a key on the `matchingKeys` object\n *\n * @param opts options\n */\n StateObject.prototype.parameters = function (opts) {\n opts = defaults(opts, { inherit: true, matchingKeys: null });\n var inherited = (opts.inherit && this.parent && this.parent.parameters()) || [];\n return inherited\n .concat(values(this.params))\n .filter(function (param) { return !opts.matchingKeys || opts.matchingKeys.hasOwnProperty(param.id); });\n };\n /**\n * Returns a single [[Param]] that is owned by the state\n *\n * If `opts.inherit` is true, it also searches the ancestor states` [[Param]]s.\n * @param id the name of the [[Param]] to return\n * @param opts options\n */\n StateObject.prototype.parameter = function (id, opts) {\n if (opts === void 0) { opts = {}; }\n return ((this.url && this.url.parameter(id, opts)) ||\n find(values(this.params), propEq('id', id)) ||\n (opts.inherit && this.parent && this.parent.parameter(id)));\n };\n StateObject.prototype.toString = function () {\n return this.fqn();\n };\n /** Predicate which returns true if the object is an class with @State() decorator */\n StateObject.isStateClass = function (stateDecl) {\n return isFunction(stateDecl) && stateDecl['__uiRouterState'] === true;\n };\n /** Predicate which returns true if the object is an internal [[StateObject]] object */\n StateObject.isState = function (obj) { return isObject(obj['__stateObjectCache']); };\n return StateObject;\n}());\nexport { StateObject };\n//# sourceMappingURL=stateObject.js.map","/** @publicapi @module state */ /** */\nimport { inArray, isString, prop } from '../common';\nimport { StateObject } from './stateObject';\n/** @internalapi */\nvar StateQueueManager = /** @class */ (function () {\n function StateQueueManager(router, states, builder, listeners) {\n this.router = router;\n this.states = states;\n this.builder = builder;\n this.listeners = listeners;\n this.queue = [];\n }\n /** @internalapi */\n StateQueueManager.prototype.dispose = function () {\n this.queue = [];\n };\n StateQueueManager.prototype.register = function (stateDecl) {\n var queue = this.queue;\n var state = StateObject.create(stateDecl);\n var name = state.name;\n if (!isString(name))\n throw new Error('State must have a valid name');\n if (this.states.hasOwnProperty(name) || inArray(queue.map(prop('name')), name))\n throw new Error(\"State '\" + name + \"' is already defined\");\n queue.push(state);\n this.flush();\n return state;\n };\n StateQueueManager.prototype.flush = function () {\n var _this = this;\n var _a = this, queue = _a.queue, states = _a.states, builder = _a.builder;\n var registered = [], // states that got registered\n orphans = [], // states that don't yet have a parent registered\n previousQueueLength = {}; // keep track of how long the queue when an orphan was first encountered\n var getState = function (name) { return _this.states.hasOwnProperty(name) && _this.states[name]; };\n var notifyListeners = function () {\n if (registered.length) {\n _this.listeners.forEach(function (listener) { return listener('registered', registered.map(function (s) { return s.self; })); });\n }\n };\n while (queue.length > 0) {\n var state = queue.shift();\n var name_1 = state.name;\n var result = builder.build(state);\n var orphanIdx = orphans.indexOf(state);\n if (result) {\n var existingState = getState(name_1);\n if (existingState && existingState.name === name_1) {\n throw new Error(\"State '\" + name_1 + \"' is already defined\");\n }\n var existingFutureState = getState(name_1 + '.**');\n if (existingFutureState) {\n // Remove future state of the same name\n this.router.stateRegistry.deregister(existingFutureState);\n }\n states[name_1] = state;\n this.attachRoute(state);\n if (orphanIdx >= 0)\n orphans.splice(orphanIdx, 1);\n registered.push(state);\n continue;\n }\n var prev = previousQueueLength[name_1];\n previousQueueLength[name_1] = queue.length;\n if (orphanIdx >= 0 && prev === queue.length) {\n // Wait until two consecutive iterations where no additional states were dequeued successfully.\n // throw new Error(`Cannot register orphaned state '${name}'`);\n queue.push(state);\n notifyListeners();\n return states;\n }\n else if (orphanIdx < 0) {\n orphans.push(state);\n }\n queue.push(state);\n }\n notifyListeners();\n return states;\n };\n StateQueueManager.prototype.attachRoute = function (state) {\n if (state.abstract || !state.url)\n return;\n var rulesApi = this.router.urlService.rules;\n rulesApi.rule(rulesApi.urlRuleFactory.create(state));\n };\n return StateQueueManager;\n}());\nexport { StateQueueManager };\n//# sourceMappingURL=stateQueueManager.js.map","/** @publicapi @module state */ /** */\nimport { StateMatcher } from './stateMatcher';\nimport { StateBuilder } from './stateBuilder';\nimport { StateQueueManager } from './stateQueueManager';\nimport { removeFrom } from '../common/common';\nimport { propEq } from '../common/hof';\nvar StateRegistry = /** @class */ (function () {\n /** @internalapi */\n function StateRegistry(router) {\n this.router = router;\n this.states = {};\n this.listeners = [];\n this.matcher = new StateMatcher(this.states);\n this.builder = new StateBuilder(this.matcher, router.urlMatcherFactory);\n this.stateQueue = new StateQueueManager(router, this.states, this.builder, this.listeners);\n this._registerRoot();\n }\n /** @internalapi */\n StateRegistry.prototype._registerRoot = function () {\n var rootStateDef = {\n name: '',\n url: '^',\n views: null,\n params: {\n '#': { value: null, type: 'hash', dynamic: true },\n },\n abstract: true,\n };\n var _root = (this._root = this.stateQueue.register(rootStateDef));\n _root.navigable = null;\n };\n /** @internalapi */\n StateRegistry.prototype.dispose = function () {\n var _this = this;\n this.stateQueue.dispose();\n this.listeners = [];\n this.get().forEach(function (state) { return _this.get(state) && _this.deregister(state); });\n };\n /**\n * Listen for a State Registry events\n *\n * Adds a callback that is invoked when states are registered or deregistered with the StateRegistry.\n *\n * #### Example:\n * ```js\n * let allStates = registry.get();\n *\n * // Later, invoke deregisterFn() to remove the listener\n * let deregisterFn = registry.onStatesChanged((event, states) => {\n * switch(event) {\n * case: 'registered':\n * states.forEach(state => allStates.push(state));\n * break;\n * case: 'deregistered':\n * states.forEach(state => {\n * let idx = allStates.indexOf(state);\n * if (idx !== -1) allStates.splice(idx, 1);\n * });\n * break;\n * }\n * });\n * ```\n *\n * @param listener a callback function invoked when the registered states changes.\n * The function receives two parameters, `event` and `state`.\n * See [[StateRegistryListener]]\n * @return a function that deregisters the listener\n */\n StateRegistry.prototype.onStatesChanged = function (listener) {\n this.listeners.push(listener);\n return function deregisterListener() {\n removeFrom(this.listeners)(listener);\n }.bind(this);\n };\n /**\n * Gets the implicit root state\n *\n * Gets the root of the state tree.\n * The root state is implicitly created by UI-Router.\n * Note: this returns the internal [[StateObject]] representation, not a [[StateDeclaration]]\n *\n * @return the root [[StateObject]]\n */\n StateRegistry.prototype.root = function () {\n return this._root;\n };\n /**\n * Adds a state to the registry\n *\n * Registers a [[StateDeclaration]] or queues it for registration.\n *\n * Note: a state will be queued if the state's parent isn't yet registered.\n *\n * @param stateDefinition the definition of the state to register.\n * @returns the internal [[StateObject]] object.\n * If the state was successfully registered, then the object is fully built (See: [[StateBuilder]]).\n * If the state was only queued, then the object is not fully built.\n */\n StateRegistry.prototype.register = function (stateDefinition) {\n return this.stateQueue.register(stateDefinition);\n };\n /** @hidden */\n StateRegistry.prototype._deregisterTree = function (state) {\n var _this = this;\n var all = this.get().map(function (s) { return s.$$state(); });\n var getChildren = function (states) {\n var _children = all.filter(function (s) { return states.indexOf(s.parent) !== -1; });\n return _children.length === 0 ? _children : _children.concat(getChildren(_children));\n };\n var children = getChildren([state]);\n var deregistered = [state].concat(children).reverse();\n deregistered.forEach(function (_state) {\n var rulesApi = _this.router.urlService.rules;\n // Remove URL rule\n rulesApi\n .rules()\n .filter(propEq('state', _state))\n .forEach(function (rule) { return rulesApi.removeRule(rule); });\n // Remove state from registry\n delete _this.states[_state.name];\n });\n return deregistered;\n };\n /**\n * Removes a state from the registry\n *\n * This removes a state from the registry.\n * If the state has children, they are are also removed from the registry.\n *\n * @param stateOrName the state's name or object representation\n * @returns {StateObject[]} a list of removed states\n */\n StateRegistry.prototype.deregister = function (stateOrName) {\n var _state = this.get(stateOrName);\n if (!_state)\n throw new Error(\"Can't deregister state; not found: \" + stateOrName);\n var deregisteredStates = this._deregisterTree(_state.$$state());\n this.listeners.forEach(function (listener) { return listener('deregistered', deregisteredStates.map(function (s) { return s.self; })); });\n return deregisteredStates;\n };\n StateRegistry.prototype.get = function (stateOrName, base) {\n var _this = this;\n if (arguments.length === 0)\n return Object.keys(this.states).map(function (name) { return _this.states[name].self; });\n var found = this.matcher.find(stateOrName, base);\n return (found && found.self) || null;\n };\n StateRegistry.prototype.decorator = function (name, func) {\n return this.builder.builder(name, func);\n };\n return StateRegistry;\n}());\nexport { StateRegistry };\n//# sourceMappingURL=stateRegistry.js.map","/** @publicapi @module state */ /** */\nimport { createProxyFunctions, defaults, extend, inArray, noop, removeFrom, silenceUncaughtInPromise, silentRejection, } from '../common/common';\nimport { isDefined, isObject, isString } from '../common/predicates';\nimport { Queue } from '../common/queue';\nimport { services } from '../common/coreservices';\nimport { PathUtils } from '../path/pathUtils';\nimport { PathNode } from '../path/pathNode';\nimport { defaultTransOpts } from '../transition/transitionService';\nimport { Rejection, RejectType } from '../transition/rejectFactory';\nimport { TargetState } from './targetState';\nimport { Param } from '../params/param';\nimport { Glob } from '../common/glob';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { lazyLoadState } from '../hooks/lazyLoad';\nimport { not, val } from '../common/hof';\n/**\n * Provides state related service functions\n *\n * This class provides services related to ui-router states.\n * An instance of this class is located on the global [[UIRouter]] object.\n */\nvar StateService = /** @class */ (function () {\n /** @internalapi */\n function StateService(/** @hidden */ router) {\n this.router = router;\n /** @internalapi */\n this.invalidCallbacks = [];\n /** @hidden */\n this._defaultErrorHandler = function $defaultErrorHandler($error$) {\n if ($error$ instanceof Error && $error$.stack) {\n console.error($error$);\n console.error($error$.stack);\n }\n else if ($error$ instanceof Rejection) {\n console.error($error$.toString());\n if ($error$.detail && $error$.detail.stack)\n console.error($error$.detail.stack);\n }\n else {\n console.error($error$);\n }\n };\n var getters = ['current', '$current', 'params', 'transition'];\n var boundFns = Object.keys(StateService.prototype).filter(not(inArray(getters)));\n createProxyFunctions(val(StateService.prototype), this, val(this), boundFns);\n }\n Object.defineProperty(StateService.prototype, \"transition\", {\n /**\n * The [[Transition]] currently in progress (or null)\n *\n * This is a passthrough through to [[UIRouterGlobals.transition]]\n */\n get: function () {\n return this.router.globals.transition;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateService.prototype, \"params\", {\n /**\n * The latest successful state parameters\n *\n * This is a passthrough through to [[UIRouterGlobals.params]]\n */\n get: function () {\n return this.router.globals.params;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateService.prototype, \"current\", {\n /**\n * The current [[StateDeclaration]]\n *\n * This is a passthrough through to [[UIRouterGlobals.current]]\n */\n get: function () {\n return this.router.globals.current;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StateService.prototype, \"$current\", {\n /**\n * The current [[StateObject]]\n *\n * This is a passthrough through to [[UIRouterGlobals.$current]]\n */\n get: function () {\n return this.router.globals.$current;\n },\n enumerable: true,\n configurable: true\n });\n /** @internalapi */\n StateService.prototype.dispose = function () {\n this.defaultErrorHandler(noop);\n this.invalidCallbacks = [];\n };\n /**\n * Handler for when [[transitionTo]] is called with an invalid state.\n *\n * Invokes the [[onInvalid]] callbacks, in natural order.\n * Each callback's return value is checked in sequence until one of them returns an instance of TargetState.\n * The results of the callbacks are wrapped in $q.when(), so the callbacks may return promises.\n *\n * If a callback returns an TargetState, then it is used as arguments to $state.transitionTo() and the result returned.\n *\n * @internalapi\n */\n StateService.prototype._handleInvalidTargetState = function (fromPath, toState) {\n var _this = this;\n var fromState = PathUtils.makeTargetState(this.router.stateRegistry, fromPath);\n var globals = this.router.globals;\n var latestThing = function () { return globals.transitionHistory.peekTail(); };\n var latest = latestThing();\n var callbackQueue = new Queue(this.invalidCallbacks.slice());\n var injector = new ResolveContext(fromPath).injector();\n var checkForRedirect = function (result) {\n if (!(result instanceof TargetState)) {\n return;\n }\n var target = result;\n // Recreate the TargetState, in case the state is now defined.\n target = _this.target(target.identifier(), target.params(), target.options());\n if (!target.valid()) {\n return Rejection.invalid(target.error()).toPromise();\n }\n if (latestThing() !== latest) {\n return Rejection.superseded().toPromise();\n }\n return _this.transitionTo(target.identifier(), target.params(), target.options());\n };\n function invokeNextCallback() {\n var nextCallback = callbackQueue.dequeue();\n if (nextCallback === undefined)\n return Rejection.invalid(toState.error()).toPromise();\n var callbackResult = services.$q.when(nextCallback(toState, fromState, injector));\n return callbackResult.then(checkForRedirect).then(function (result) { return result || invokeNextCallback(); });\n }\n return invokeNextCallback();\n };\n /**\n * Registers an Invalid State handler\n *\n * Registers a [[OnInvalidCallback]] function to be invoked when [[StateService.transitionTo]]\n * has been called with an invalid state reference parameter\n *\n * Example:\n * ```js\n * stateService.onInvalid(function(to, from, injector) {\n * if (to.name() === 'foo') {\n * let lazyLoader = injector.get('LazyLoadService');\n * return lazyLoader.load('foo')\n * .then(() => stateService.target('foo'));\n * }\n * });\n * ```\n *\n * @param {function} callback invoked when the toState is invalid\n * This function receives the (invalid) toState, the fromState, and an injector.\n * The function may optionally return a [[TargetState]] or a Promise for a TargetState.\n * If one is returned, it is treated as a redirect.\n *\n * @returns a function which deregisters the callback\n */\n StateService.prototype.onInvalid = function (callback) {\n this.invalidCallbacks.push(callback);\n return function deregisterListener() {\n removeFrom(this.invalidCallbacks)(callback);\n }.bind(this);\n };\n /**\n * Reloads the current state\n *\n * A method that force reloads the current state, or a partial state hierarchy.\n * All resolves are re-resolved, and components reinstantiated.\n *\n * #### Example:\n * ```js\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * $state.reload();\n * }\n * });\n * ```\n *\n * Note: `reload()` is just an alias for:\n *\n * ```js\n * $state.transitionTo($state.current, $state.params, {\n * reload: true, inherit: false\n * });\n * ```\n *\n * @param reloadState A state name or a state object.\n * If present, this state and all its children will be reloaded, but ancestors will not reload.\n *\n * #### Example:\n * ```js\n * //assuming app application consists of 3 states: 'contacts', 'contacts.detail', 'contacts.detail.item'\n * //and current state is 'contacts.detail.item'\n * let app angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.reload = function(){\n * //will reload 'contact.detail' and nested 'contact.detail.item' states\n * $state.reload('contact.detail');\n * }\n * });\n * ```\n *\n * @returns A promise representing the state of the new transition. See [[StateService.go]]\n */\n StateService.prototype.reload = function (reloadState) {\n return this.transitionTo(this.current, this.params, {\n reload: isDefined(reloadState) ? reloadState : true,\n inherit: false,\n notify: false,\n });\n };\n /**\n * Transition to a different state and/or parameters\n *\n * Convenience method for transitioning to a new state.\n *\n * `$state.go` calls `$state.transitionTo` internally but automatically sets options to\n * `{ location: true, inherit: true, relative: router.globals.$current, notify: true }`.\n * This allows you to use either an absolute or relative `to` argument (because of `relative: router.globals.$current`).\n * It also allows you to specify * only the parameters you'd like to update, while letting unspecified parameters\n * inherit from the current parameter values (because of `inherit: true`).\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.go('contact.detail');\n * };\n * });\n * ```\n *\n * @param to Absolute state name, state object, or relative state path (relative to current state).\n *\n * Some examples:\n *\n * - `$state.go('contact.detail')` - will go to the `contact.detail` state\n * - `$state.go('^')` - will go to the parent state\n * - `$state.go('^.sibling')` - if current state is `home.child`, will go to the `home.sibling` state\n * - `$state.go('.child.grandchild')` - if current state is home, will go to the `home.child.grandchild` state\n *\n * @param params A map of the parameters that will be sent to the state, will populate $stateParams.\n *\n * Any parameters that are not specified will be inherited from current parameter values (because of `inherit: true`).\n * This allows, for example, going to a sibling state that shares parameters defined by a parent state.\n *\n * @param options Transition options\n *\n * @returns {promise} A promise representing the state of the new transition.\n */\n StateService.prototype.go = function (to, params, options) {\n var defautGoOpts = { relative: this.$current, inherit: true };\n var transOpts = defaults(options, defautGoOpts, defaultTransOpts);\n return this.transitionTo(to, params, transOpts);\n };\n /**\n * Creates a [[TargetState]]\n *\n * This is a factory method for creating a TargetState\n *\n * This may be returned from a Transition Hook to redirect a transition, for example.\n */\n StateService.prototype.target = function (identifier, params, options) {\n if (options === void 0) { options = {}; }\n // If we're reloading, find the state object to reload from\n if (isObject(options.reload) && !options.reload.name)\n throw new Error('Invalid reload state object');\n var reg = this.router.stateRegistry;\n options.reloadState =\n options.reload === true ? reg.root() : reg.matcher.find(options.reload, options.relative);\n if (options.reload && !options.reloadState)\n throw new Error(\"No such reload state '\" + (isString(options.reload) ? options.reload : options.reload.name) + \"'\");\n return new TargetState(this.router.stateRegistry, identifier, params, options);\n };\n StateService.prototype.getCurrentPath = function () {\n var _this = this;\n var globals = this.router.globals;\n var latestSuccess = globals.successfulTransitions.peekTail();\n var rootPath = function () { return [new PathNode(_this.router.stateRegistry.root())]; };\n return latestSuccess ? latestSuccess.treeChanges().to : rootPath();\n };\n /**\n * Low-level method for transitioning to a new state.\n *\n * The [[go]] method (which uses `transitionTo` internally) is recommended in most situations.\n *\n * #### Example:\n * ```js\n * let app = angular.module('app', ['ui.router']);\n *\n * app.controller('ctrl', function ($scope, $state) {\n * $scope.changeState = function () {\n * $state.transitionTo('contact.detail');\n * };\n * });\n * ```\n *\n * @param to State name or state object.\n * @param toParams A map of the parameters that will be sent to the state,\n * will populate $stateParams.\n * @param options Transition options\n *\n * @returns A promise representing the state of the new transition. See [[go]]\n */\n StateService.prototype.transitionTo = function (to, toParams, options) {\n var _this = this;\n if (toParams === void 0) { toParams = {}; }\n if (options === void 0) { options = {}; }\n var router = this.router;\n var globals = router.globals;\n options = defaults(options, defaultTransOpts);\n var getCurrent = function () { return globals.transition; };\n options = extend(options, { current: getCurrent });\n var ref = this.target(to, toParams, options);\n var currentPath = this.getCurrentPath();\n if (!ref.exists())\n return this._handleInvalidTargetState(currentPath, ref);\n if (!ref.valid())\n return silentRejection(ref.error());\n /**\n * Special handling for Ignored, Aborted, and Redirected transitions\n *\n * The semantics for the transition.run() promise and the StateService.transitionTo()\n * promise differ. For instance, the run() promise may be rejected because it was\n * IGNORED, but the transitionTo() promise is resolved because from the user perspective\n * no error occurred. Likewise, the transition.run() promise may be rejected because of\n * a Redirect, but the transitionTo() promise is chained to the new Transition's promise.\n */\n var rejectedTransitionHandler = function (trans) { return function (error) {\n if (error instanceof Rejection) {\n var isLatest = router.globals.lastStartedTransitionId <= trans.$id;\n if (error.type === RejectType.IGNORED) {\n isLatest && router.urlRouter.update();\n // Consider ignored `Transition.run()` as a successful `transitionTo`\n return services.$q.when(globals.current);\n }\n var detail = error.detail;\n if (error.type === RejectType.SUPERSEDED && error.redirected && detail instanceof TargetState) {\n // If `Transition.run()` was redirected, allow the `transitionTo()` promise to resolve successfully\n // by returning the promise for the new (redirect) `Transition.run()`.\n var redirect = trans.redirect(detail);\n return redirect.run().catch(rejectedTransitionHandler(redirect));\n }\n if (error.type === RejectType.ABORTED) {\n isLatest && router.urlRouter.update();\n return services.$q.reject(error);\n }\n }\n var errorHandler = _this.defaultErrorHandler();\n errorHandler(error);\n return services.$q.reject(error);\n }; };\n var transition = this.router.transitionService.create(currentPath, ref);\n var transitionToPromise = transition.run().catch(rejectedTransitionHandler(transition));\n silenceUncaughtInPromise(transitionToPromise); // issue #2676\n // Return a promise for the transition, which also has the transition object on it.\n return extend(transitionToPromise, { transition: transition });\n };\n /**\n * Checks if the current state *is* the provided state\n *\n * Similar to [[includes]] but only checks for the full state name.\n * If params is supplied then it will be tested for strict equality against the current\n * active params object, so all params must match with none missing and no extras.\n *\n * #### Example:\n * ```js\n * $state.$current.name = 'contacts.details.item';\n *\n * // absolute name\n * $state.is('contact.details.item'); // returns true\n * $state.is(contactDetailItemStateObject); // returns true\n * ```\n *\n * // relative name (. and ^), typically from a template\n * // E.g. from the 'contacts.details' template\n * ```html\n *
Item
\n * ```\n *\n * @param stateOrName The state name (absolute or relative) or state object you'd like to check.\n * @param params A param object, e.g. `{sectionId: section.id}`, that you'd like\n * to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns Returns true if it is the state.\n */\n StateService.prototype.is = function (stateOrName, params, options) {\n options = defaults(options, { relative: this.$current });\n var state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n if (!isDefined(state))\n return undefined;\n if (this.$current !== state)\n return false;\n if (!params)\n return true;\n var schema = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n /**\n * Checks if the current state *includes* the provided state\n *\n * A method to determine if the current active state is equal to or is the child of the\n * state stateName. If any params are passed then they will be tested for a match as well.\n * Not all the parameters need to be passed, just the ones you'd like to test for equality.\n *\n * #### Example when `$state.$current.name === 'contacts.details.item'`\n * ```js\n * // Using partial names\n * $state.includes(\"contacts\"); // returns true\n * $state.includes(\"contacts.details\"); // returns true\n * $state.includes(\"contacts.details.item\"); // returns true\n * $state.includes(\"contacts.list\"); // returns false\n * $state.includes(\"about\"); // returns false\n * ```\n *\n * #### Glob Examples when `* $state.$current.name === 'contacts.details.item.url'`:\n * ```js\n * $state.includes(\"*.details.*.*\"); // returns true\n * $state.includes(\"*.details.**\"); // returns true\n * $state.includes(\"**.item.**\"); // returns true\n * $state.includes(\"*.details.item.url\"); // returns true\n * $state.includes(\"*.details.*.url\"); // returns true\n * $state.includes(\"*.details.*\"); // returns false\n * $state.includes(\"item.**\"); // returns false\n * ```\n *\n * @param stateOrName A partial name, relative name, glob pattern,\n * or state object to be searched for within the current state name.\n * @param params A param object, e.g. `{sectionId: section.id}`,\n * that you'd like to test against the current active state.\n * @param options An options object. The options are:\n * - `relative`: If `stateOrName` is a relative state name and `options.relative` is set, .is will\n * test relative to `options.relative` state (or name).\n *\n * @returns {boolean} Returns true if it does include the state\n */\n StateService.prototype.includes = function (stateOrName, params, options) {\n options = defaults(options, { relative: this.$current });\n var glob = isString(stateOrName) && Glob.fromString(stateOrName);\n if (glob) {\n if (!glob.matches(this.$current.name))\n return false;\n stateOrName = this.$current.name;\n }\n var state = this.router.stateRegistry.matcher.find(stateOrName, options.relative), include = this.$current.includes;\n if (!isDefined(state))\n return undefined;\n if (!isDefined(include[state.name]))\n return false;\n if (!params)\n return true;\n var schema = state.parameters({ inherit: true, matchingKeys: params });\n return Param.equals(schema, Param.values(schema, params), this.params);\n };\n /**\n * Generates a URL for a state and parameters\n *\n * Returns the url for the given state populated with the given params.\n *\n * #### Example:\n * ```js\n * expect($state.href(\"about.person\", { person: \"bob\" })).toEqual(\"/about/bob\");\n * ```\n *\n * @param stateOrName The state name or state object you'd like to generate a url from.\n * @param params An object of parameter values to fill the state's required parameters.\n * @param options Options object. The options are:\n *\n * @returns {string} compiled state url\n */\n StateService.prototype.href = function (stateOrName, params, options) {\n var defaultHrefOpts = {\n lossy: true,\n inherit: true,\n absolute: false,\n relative: this.$current,\n };\n options = defaults(options, defaultHrefOpts);\n params = params || {};\n var state = this.router.stateRegistry.matcher.find(stateOrName, options.relative);\n if (!isDefined(state))\n return null;\n if (options.inherit)\n params = this.params.$inherit(params, this.$current, state);\n var nav = state && options.lossy ? state.navigable : state;\n if (!nav || nav.url === undefined || nav.url === null) {\n return null;\n }\n return this.router.urlRouter.href(nav.url, params, { absolute: options.absolute });\n };\n /**\n * Sets or gets the default [[transitionTo]] error handler.\n *\n * The error handler is called when a [[Transition]] is rejected or when any error occurred during the Transition.\n * This includes errors caused by resolves and transition hooks.\n *\n * Note:\n * This handler does not receive certain Transition rejections.\n * Redirected and Ignored Transitions are not considered to be errors by [[StateService.transitionTo]].\n *\n * The built-in default error handler logs the error to the console.\n *\n * You can provide your own custom handler.\n *\n * #### Example:\n * ```js\n * stateService.defaultErrorHandler(function() {\n * // Do not log transitionTo errors\n * });\n * ```\n *\n * @param handler a global error handler function\n * @returns the current global error handler\n */\n StateService.prototype.defaultErrorHandler = function (handler) {\n return (this._defaultErrorHandler = handler || this._defaultErrorHandler);\n };\n StateService.prototype.get = function (stateOrName, base) {\n var reg = this.router.stateRegistry;\n if (arguments.length === 0)\n return reg.get();\n return reg.get(stateOrName, base || this.$current);\n };\n /**\n * Lazy loads a state\n *\n * Explicitly runs a state's [[StateDeclaration.lazyLoad]] function.\n *\n * @param stateOrName the state that should be lazy loaded\n * @param transition the optional Transition context to use (if the lazyLoad function requires an injector, etc)\n * Note: If no transition is provided, a noop transition is created using the from the current state to the current state.\n * This noop transition is not actually run.\n *\n * @returns a promise to lazy load\n */\n StateService.prototype.lazyLoad = function (stateOrName, transition) {\n var state = this.get(stateOrName);\n if (!state || !state.lazyLoad)\n throw new Error('Can not lazy load ' + stateOrName);\n var currentPath = this.getCurrentPath();\n var target = PathUtils.makeTargetState(this.router.stateRegistry, currentPath);\n transition = transition || this.router.transitionService.create(currentPath, target);\n return lazyLoadState(transition, state);\n };\n return StateService;\n}());\nexport { StateService };\n//# sourceMappingURL=stateService.js.map","/** @publicapi @module state */ /** */\nimport { isString } from '../common/predicates';\nimport { stringify } from '../common/strings';\nimport { extend } from '../common';\n/**\n * Encapsulate the target (destination) state/params/options of a [[Transition]].\n *\n * This class is frequently used to redirect a transition to a new destination.\n *\n * See:\n *\n * - [[HookResult]]\n * - [[TransitionHookFn]]\n * - [[TransitionService.onStart]]\n *\n * To create a `TargetState`, use [[StateService.target]].\n *\n * ---\n *\n * This class wraps:\n *\n * 1) an identifier for a state\n * 2) a set of parameters\n * 3) and transition options\n * 4) the registered state object (the [[StateDeclaration]])\n *\n * Many UI-Router APIs such as [[StateService.go]] take a [[StateOrName]] argument which can\n * either be a *state object* (a [[StateDeclaration]] or [[StateObject]]) or a *state name* (a string).\n * The `TargetState` class normalizes those options.\n *\n * A `TargetState` may be valid (the state being targeted exists in the registry)\n * or invalid (the state being targeted is not registered).\n */\nvar TargetState = /** @class */ (function () {\n /**\n * The TargetState constructor\n *\n * Note: Do not construct a `TargetState` manually.\n * To create a `TargetState`, use the [[StateService.target]] factory method.\n *\n * @param _stateRegistry The StateRegistry to use to look up the _definition\n * @param _identifier An identifier for a state.\n * Either a fully-qualified state name, or the object used to define the state.\n * @param _params Parameters for the target state\n * @param _options Transition options.\n *\n * @internalapi\n */\n function TargetState(_stateRegistry, _identifier, _params, _options) {\n this._stateRegistry = _stateRegistry;\n this._identifier = _identifier;\n this._identifier = _identifier;\n this._params = extend({}, _params || {});\n this._options = extend({}, _options || {});\n this._definition = _stateRegistry.matcher.find(_identifier, this._options.relative);\n }\n /** The name of the state this object targets */\n TargetState.prototype.name = function () {\n return (this._definition && this._definition.name) || this._identifier;\n };\n /** The identifier used when creating this TargetState */\n TargetState.prototype.identifier = function () {\n return this._identifier;\n };\n /** The target parameter values */\n TargetState.prototype.params = function () {\n return this._params;\n };\n /** The internal state object (if it was found) */\n TargetState.prototype.$state = function () {\n return this._definition;\n };\n /** The internal state declaration (if it was found) */\n TargetState.prototype.state = function () {\n return this._definition && this._definition.self;\n };\n /** The target options */\n TargetState.prototype.options = function () {\n return this._options;\n };\n /** True if the target state was found */\n TargetState.prototype.exists = function () {\n return !!(this._definition && this._definition.self);\n };\n /** True if the object is valid */\n TargetState.prototype.valid = function () {\n return !this.error();\n };\n /** If the object is invalid, returns the reason why */\n TargetState.prototype.error = function () {\n var base = this.options().relative;\n if (!this._definition && !!base) {\n var stateName = base.name ? base.name : base;\n return \"Could not resolve '\" + this.name() + \"' from state '\" + stateName + \"'\";\n }\n if (!this._definition)\n return \"No such state '\" + this.name() + \"'\";\n if (!this._definition.self)\n return \"State '\" + this.name() + \"' has an invalid definition\";\n };\n TargetState.prototype.toString = function () {\n return \"'\" + this.name() + \"'\" + stringify(this.params());\n };\n /**\n * Returns a copy of this TargetState which targets a different state.\n * The new TargetState has the same parameter values and transition options.\n *\n * @param state The new state that should be targeted\n */\n TargetState.prototype.withState = function (state) {\n return new TargetState(this._stateRegistry, state, this._params, this._options);\n };\n /**\n * Returns a copy of this TargetState, using the specified parameter values.\n *\n * @param params the new parameter values to use\n * @param replace When false (default) the new parameter values will be merged with the current values.\n * When true the parameter values will be used instead of the current values.\n */\n TargetState.prototype.withParams = function (params, replace) {\n if (replace === void 0) { replace = false; }\n var newParams = replace ? params : extend({}, this._params, params);\n return new TargetState(this._stateRegistry, this._identifier, newParams, this._options);\n };\n /**\n * Returns a copy of this TargetState, using the specified Transition Options.\n *\n * @param options the new options to use\n * @param replace When false (default) the new options will be merged with the current options.\n * When true the options will be used instead of the current options.\n */\n TargetState.prototype.withOptions = function (options, replace) {\n if (replace === void 0) { replace = false; }\n var newOpts = replace ? options : extend({}, this._options, options);\n return new TargetState(this._stateRegistry, this._identifier, this._params, newOpts);\n };\n /** Returns true if the object has a state property that might be a state or state name */\n TargetState.isDef = function (obj) { return obj && obj.state && (isString(obj.state) || isString(obj.state.name)); };\n return TargetState;\n}());\nexport { TargetState };\n//# sourceMappingURL=targetState.js.map","/** @publicapi @module transition */ /** */\nimport { extend, assertPredicate, unnestR, identity } from '../common/common';\nimport { isArray } from '../common/predicates';\nimport { TransitionHookPhase, TransitionHookScope, } from './interface';\nimport { TransitionHook } from './transitionHook';\n/**\n * This class returns applicable TransitionHooks for a specific Transition instance.\n *\n * Hooks ([[RegisteredHook]]) may be registered globally, e.g., $transitions.onEnter(...), or locally, e.g.\n * myTransition.onEnter(...). The HookBuilder finds matching RegisteredHooks (where the match criteria is\n * determined by the type of hook)\n *\n * The HookBuilder also converts RegisteredHooks objects to TransitionHook objects, which are used to run a Transition.\n *\n * The HookBuilder constructor is given the $transitions service and a Transition instance. Thus, a HookBuilder\n * instance may only be used for one specific Transition object. (side note: the _treeChanges accessor is private\n * in the Transition class, so we must also provide the Transition's _treeChanges)\n *\n */\nvar HookBuilder = /** @class */ (function () {\n function HookBuilder(transition) {\n this.transition = transition;\n }\n HookBuilder.prototype.buildHooksForPhase = function (phase) {\n var _this = this;\n var $transitions = this.transition.router.transitionService;\n return $transitions._pluginapi\n ._getEvents(phase)\n .map(function (type) { return _this.buildHooks(type); })\n .reduce(unnestR, [])\n .filter(identity);\n };\n /**\n * Returns an array of newly built TransitionHook objects.\n *\n * - Finds all RegisteredHooks registered for the given `hookType` which matched the transition's [[TreeChanges]].\n * - Finds [[PathNode]] (or `PathNode[]`) to use as the TransitionHook context(s)\n * - For each of the [[PathNode]]s, creates a TransitionHook\n *\n * @param hookType the type of the hook registration function, e.g., 'onEnter', 'onFinish'.\n */\n HookBuilder.prototype.buildHooks = function (hookType) {\n var transition = this.transition;\n var treeChanges = transition.treeChanges();\n // Find all the matching registered hooks for a given hook type\n var matchingHooks = this.getMatchingHooks(hookType, treeChanges, transition);\n if (!matchingHooks)\n return [];\n var baseHookOptions = {\n transition: transition,\n current: transition.options().current,\n };\n var makeTransitionHooks = function (hook) {\n // Fetch the Nodes that caused this hook to match.\n var matches = hook.matches(treeChanges, transition);\n // Select the PathNode[] that will be used as TransitionHook context objects\n var matchingNodes = matches[hookType.criteriaMatchPath.name];\n // Return an array of HookTuples\n return matchingNodes.map(function (node) {\n var _options = extend({\n bind: hook.bind,\n traceData: { hookType: hookType.name, context: node },\n }, baseHookOptions);\n var state = hookType.criteriaMatchPath.scope === TransitionHookScope.STATE ? node.state.self : null;\n var transitionHook = new TransitionHook(transition, state, hook, _options);\n return { hook: hook, node: node, transitionHook: transitionHook };\n });\n };\n return matchingHooks\n .map(makeTransitionHooks)\n .reduce(unnestR, [])\n .sort(tupleSort(hookType.reverseSort))\n .map(function (tuple) { return tuple.transitionHook; });\n };\n /**\n * Finds all RegisteredHooks from:\n * - The Transition object instance hook registry\n * - The TransitionService ($transitions) global hook registry\n *\n * which matched:\n * - the eventType\n * - the matchCriteria (to, from, exiting, retained, entering)\n *\n * @returns an array of matched [[RegisteredHook]]s\n */\n HookBuilder.prototype.getMatchingHooks = function (hookType, treeChanges, transition) {\n var isCreate = hookType.hookPhase === TransitionHookPhase.CREATE;\n // Instance and Global hook registries\n var $transitions = this.transition.router.transitionService;\n var registries = isCreate ? [$transitions] : [this.transition, $transitions];\n return registries\n .map(function (reg) { return reg.getHooks(hookType.name); }) // Get named hooks from registries\n .filter(assertPredicate(isArray, \"broken event named: \" + hookType.name)) // Sanity check\n .reduce(unnestR, []) // Un-nest RegisteredHook[][] to RegisteredHook[] array\n .filter(function (hook) { return hook.matches(treeChanges, transition); }); // Only those satisfying matchCriteria\n };\n return HookBuilder;\n}());\nexport { HookBuilder };\n/**\n * A factory for a sort function for HookTuples.\n *\n * The sort function first compares the PathNode depth (how deep in the state tree a node is), then compares\n * the EventHook priority.\n *\n * @param reverseDepthSort a boolean, when true, reverses the sort order for the node depth\n * @returns a tuple sort function\n */\nfunction tupleSort(reverseDepthSort) {\n if (reverseDepthSort === void 0) { reverseDepthSort = false; }\n return function nodeDepthThenPriority(l, r) {\n var factor = reverseDepthSort ? -1 : 1;\n var depthDelta = (l.node.state.path.length - r.node.state.path.length) * factor;\n return depthDelta !== 0 ? depthDelta : r.hook.priority - l.hook.priority;\n };\n}\n//# sourceMappingURL=hookBuilder.js.map","/** @publicapi @module transition */ /** */\nimport { isString, isFunction, Glob, extend, removeFrom, tail, values, identity, mapObj } from '../common';\nimport { // has or is using\nTransitionHookScope, } from './interface';\n/**\n * Determines if the given state matches the matchCriteria\n *\n * @hidden\n *\n * @param state a State Object to test against\n * @param criterion\n * - If a string, matchState uses the string as a glob-matcher against the state name\n * - If an array (of strings), matchState uses each string in the array as a glob-matchers against the state name\n * and returns a positive match if any of the globs match.\n * - If a function, matchState calls the function with the state and returns true if the function's result is truthy.\n * @returns {boolean}\n */\nexport function matchState(state, criterion, transition) {\n var toMatch = isString(criterion) ? [criterion] : criterion;\n function matchGlobs(_state) {\n var globStrings = toMatch;\n for (var i = 0; i < globStrings.length; i++) {\n var glob = new Glob(globStrings[i]);\n if ((glob && glob.matches(_state.name)) || (!glob && globStrings[i] === _state.name)) {\n return true;\n }\n }\n return false;\n }\n var matchFn = (isFunction(toMatch) ? toMatch : matchGlobs);\n return !!matchFn(state, transition);\n}\n/**\n * @internalapi\n * The registration data for a registered transition hook\n */\nvar RegisteredHook = /** @class */ (function () {\n function RegisteredHook(tranSvc, eventType, callback, matchCriteria, removeHookFromRegistry, options) {\n if (options === void 0) { options = {}; }\n this.tranSvc = tranSvc;\n this.eventType = eventType;\n this.callback = callback;\n this.matchCriteria = matchCriteria;\n this.removeHookFromRegistry = removeHookFromRegistry;\n this.invokeCount = 0;\n this._deregistered = false;\n this.priority = options.priority || 0;\n this.bind = options.bind || null;\n this.invokeLimit = options.invokeLimit;\n }\n /**\n * Gets the matching [[PathNode]]s\n *\n * Given an array of [[PathNode]]s, and a [[HookMatchCriterion]], returns an array containing\n * the [[PathNode]]s that the criteria matches, or `null` if there were no matching nodes.\n *\n * Returning `null` is significant to distinguish between the default\n * \"match-all criterion value\" of `true` compared to a `() => true` function,\n * when the nodes is an empty array.\n *\n * This is useful to allow a transition match criteria of `entering: true`\n * to still match a transition, even when `entering === []`. Contrast that\n * with `entering: (state) => true` which only matches when a state is actually\n * being entered.\n */\n RegisteredHook.prototype._matchingNodes = function (nodes, criterion, transition) {\n if (criterion === true)\n return nodes;\n var matching = nodes.filter(function (node) { return matchState(node.state, criterion, transition); });\n return matching.length ? matching : null;\n };\n /**\n * Gets the default match criteria (all `true`)\n *\n * Returns an object which has all the criteria match paths as keys and `true` as values, i.e.:\n *\n * ```js\n * {\n * to: true,\n * from: true,\n * entering: true,\n * exiting: true,\n * retained: true,\n * }\n */\n RegisteredHook.prototype._getDefaultMatchCriteria = function () {\n return mapObj(this.tranSvc._pluginapi._getPathTypes(), function () { return true; });\n };\n /**\n * Gets matching nodes as [[IMatchingNodes]]\n *\n * Create a IMatchingNodes object from the TransitionHookTypes that is roughly equivalent to:\n *\n * ```js\n * let matches: IMatchingNodes = {\n * to: _matchingNodes([tail(treeChanges.to)], mc.to),\n * from: _matchingNodes([tail(treeChanges.from)], mc.from),\n * exiting: _matchingNodes(treeChanges.exiting, mc.exiting),\n * retained: _matchingNodes(treeChanges.retained, mc.retained),\n * entering: _matchingNodes(treeChanges.entering, mc.entering),\n * };\n * ```\n */\n RegisteredHook.prototype._getMatchingNodes = function (treeChanges, transition) {\n var _this = this;\n var criteria = extend(this._getDefaultMatchCriteria(), this.matchCriteria);\n var paths = values(this.tranSvc._pluginapi._getPathTypes());\n return paths.reduce(function (mn, pathtype) {\n // STATE scope criteria matches against every node in the path.\n // TRANSITION scope criteria matches against only the last node in the path\n var isStateHook = pathtype.scope === TransitionHookScope.STATE;\n var path = treeChanges[pathtype.name] || [];\n var nodes = isStateHook ? path : [tail(path)];\n mn[pathtype.name] = _this._matchingNodes(nodes, criteria[pathtype.name], transition);\n return mn;\n }, {});\n };\n /**\n * Determines if this hook's [[matchCriteria]] match the given [[TreeChanges]]\n *\n * @returns an IMatchingNodes object, or null. If an IMatchingNodes object is returned, its values\n * are the matching [[PathNode]]s for each [[HookMatchCriterion]] (to, from, exiting, retained, entering)\n */\n RegisteredHook.prototype.matches = function (treeChanges, transition) {\n var matches = this._getMatchingNodes(treeChanges, transition);\n // Check if all the criteria matched the TreeChanges object\n var allMatched = values(matches).every(identity);\n return allMatched ? matches : null;\n };\n RegisteredHook.prototype.deregister = function () {\n this.removeHookFromRegistry(this);\n this._deregistered = true;\n };\n return RegisteredHook;\n}());\nexport { RegisteredHook };\n/** @hidden Return a registration function of the requested type. */\nexport function makeEvent(registry, transitionService, eventType) {\n // Create the object which holds the registered transition hooks.\n var _registeredHooks = (registry._registeredHooks = registry._registeredHooks || {});\n var hooks = (_registeredHooks[eventType.name] = []);\n var removeHookFn = removeFrom(hooks);\n // Create hook registration function on the IHookRegistry for the event\n registry[eventType.name] = hookRegistrationFn;\n function hookRegistrationFn(matchObject, callback, options) {\n if (options === void 0) { options = {}; }\n var registeredHook = new RegisteredHook(transitionService, eventType, callback, matchObject, removeHookFn, options);\n hooks.push(registeredHook);\n return registeredHook.deregister.bind(registeredHook);\n }\n return hookRegistrationFn;\n}\n//# sourceMappingURL=hookRegistry.js.map","/**\n * # Transition subsystem\n *\n * This module contains APIs related to a Transition.\n *\n * See:\n * - [[TransitionService]]\n * - [[Transition]]\n * - [[HookFn]], [[TransitionHookFn]], [[TransitionStateHookFn]], [[HookMatchCriteria]], [[HookResult]]\n *\n * @preferred @publicapi @module transition\n */ /** */\nexport * from './interface';\nexport * from './hookBuilder';\nexport * from './hookRegistry';\nexport * from './rejectFactory';\nexport * from './transition';\nexport * from './transitionHook';\nexport * from './transitionEventType';\nexport * from './transitionService';\n//# sourceMappingURL=index.js.map","var TransitionHookPhase;\n(function (TransitionHookPhase) {\n TransitionHookPhase[TransitionHookPhase[\"CREATE\"] = 0] = \"CREATE\";\n TransitionHookPhase[TransitionHookPhase[\"BEFORE\"] = 1] = \"BEFORE\";\n TransitionHookPhase[TransitionHookPhase[\"RUN\"] = 2] = \"RUN\";\n TransitionHookPhase[TransitionHookPhase[\"SUCCESS\"] = 3] = \"SUCCESS\";\n TransitionHookPhase[TransitionHookPhase[\"ERROR\"] = 4] = \"ERROR\";\n})(TransitionHookPhase || (TransitionHookPhase = {}));\nvar TransitionHookScope;\n(function (TransitionHookScope) {\n TransitionHookScope[TransitionHookScope[\"TRANSITION\"] = 0] = \"TRANSITION\";\n TransitionHookScope[TransitionHookScope[\"STATE\"] = 1] = \"STATE\";\n})(TransitionHookScope || (TransitionHookScope = {}));\nexport { TransitionHookPhase, TransitionHookScope };\n//# sourceMappingURL=interface.js.map","/** @publicapi @module transition */ /** */\n'use strict';\nimport { extend, silentRejection } from '../common/common';\nimport { stringify } from '../common/strings';\nimport { is } from '../common/hof';\nvar RejectType;\n(function (RejectType) {\n /**\n * A new transition superseded this one.\n *\n * While this transition was running, a new transition started.\n * This transition is cancelled because it was superseded by new transition.\n */\n RejectType[RejectType[\"SUPERSEDED\"] = 2] = \"SUPERSEDED\";\n /**\n * The transition was aborted\n *\n * The transition was aborted by a hook which returned `false`\n */\n RejectType[RejectType[\"ABORTED\"] = 3] = \"ABORTED\";\n /**\n * The transition was invalid\n *\n * The transition was never started because it was invalid\n */\n RejectType[RejectType[\"INVALID\"] = 4] = \"INVALID\";\n /**\n * The transition was ignored\n *\n * The transition was ignored because it would have no effect.\n *\n * Either:\n *\n * - The transition is targeting the current state and parameter values\n * - The transition is targeting the same state and parameter values as the currently running transition.\n */\n RejectType[RejectType[\"IGNORED\"] = 5] = \"IGNORED\";\n /**\n * The transition errored.\n *\n * This generally means a hook threw an error or returned a rejected promise\n */\n RejectType[RejectType[\"ERROR\"] = 6] = \"ERROR\";\n})(RejectType || (RejectType = {}));\nexport { RejectType };\n/** @hidden */\nvar id = 0;\nvar Rejection = /** @class */ (function () {\n function Rejection(type, message, detail) {\n /** @hidden */\n this.$id = id++;\n this.type = type;\n this.message = message;\n this.detail = detail;\n }\n /** Returns true if the obj is a rejected promise created from the `asPromise` factory */\n Rejection.isRejectionPromise = function (obj) {\n return obj && typeof obj.then === 'function' && is(Rejection)(obj._transitionRejection);\n };\n /** Returns a Rejection due to transition superseded */\n Rejection.superseded = function (detail, options) {\n var message = 'The transition has been superseded by a different transition';\n var rejection = new Rejection(RejectType.SUPERSEDED, message, detail);\n if (options && options.redirected) {\n rejection.redirected = true;\n }\n return rejection;\n };\n /** Returns a Rejection due to redirected transition */\n Rejection.redirected = function (detail) {\n return Rejection.superseded(detail, { redirected: true });\n };\n /** Returns a Rejection due to invalid transition */\n Rejection.invalid = function (detail) {\n var message = 'This transition is invalid';\n return new Rejection(RejectType.INVALID, message, detail);\n };\n /** Returns a Rejection due to ignored transition */\n Rejection.ignored = function (detail) {\n var message = 'The transition was ignored';\n return new Rejection(RejectType.IGNORED, message, detail);\n };\n /** Returns a Rejection due to aborted transition */\n Rejection.aborted = function (detail) {\n var message = 'The transition has been aborted';\n return new Rejection(RejectType.ABORTED, message, detail);\n };\n /** Returns a Rejection due to aborted transition */\n Rejection.errored = function (detail) {\n var message = 'The transition errored';\n return new Rejection(RejectType.ERROR, message, detail);\n };\n /**\n * Returns a Rejection\n *\n * Normalizes a value as a Rejection.\n * If the value is already a Rejection, returns it.\n * Otherwise, wraps and returns the value as a Rejection (Rejection type: ERROR).\n *\n * @returns `detail` if it is already a `Rejection`, else returns an ERROR Rejection.\n */\n Rejection.normalize = function (detail) {\n return is(Rejection)(detail) ? detail : Rejection.errored(detail);\n };\n Rejection.prototype.toString = function () {\n var detailString = function (d) { return (d && d.toString !== Object.prototype.toString ? d.toString() : stringify(d)); };\n var detail = detailString(this.detail);\n var _a = this, $id = _a.$id, type = _a.type, message = _a.message;\n return \"Transition Rejection($id: \" + $id + \" type: \" + type + \", message: \" + message + \", detail: \" + detail + \")\";\n };\n Rejection.prototype.toPromise = function () {\n return extend(silentRejection(this), { _transitionRejection: this });\n };\n return Rejection;\n}());\nexport { Rejection };\n//# sourceMappingURL=rejectFactory.js.map","/** @publicapi @module transition */ /** */\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { stringify } from '../common/strings';\nimport { map, find, extend, mergeR, tail, omit, arrayTuples, unnestR, identity, anyTrueR } from '../common/common';\nimport { isObject, isUndefined } from '../common/predicates';\nimport { prop, propEq, val, not, is } from '../common/hof';\nimport { TransitionHookPhase, } from './interface'; // has or is using\nimport { TransitionHook } from './transitionHook';\nimport { matchState, makeEvent } from './hookRegistry';\nimport { HookBuilder } from './hookBuilder';\nimport { PathUtils } from '../path/pathUtils';\nimport { Param } from '../params/param';\nimport { Resolvable } from '../resolve/resolvable';\nimport { ResolveContext } from '../resolve/resolveContext';\nimport { Rejection } from './rejectFactory';\nimport { flattenR, uniqR } from '../common';\n/** @hidden */\nvar stateSelf = prop('self');\n/**\n * Represents a transition between two states.\n *\n * When navigating to a state, we are transitioning **from** the current state **to** the new state.\n *\n * This object contains all contextual information about the to/from states, parameters, resolves.\n * It has information about all states being entered and exited as a result of the transition.\n */\nvar Transition = /** @class */ (function () {\n /**\n * Creates a new Transition object.\n *\n * If the target state is not valid, an error is thrown.\n *\n * @internalapi\n *\n * @param fromPath The path of [[PathNode]]s from which the transition is leaving. The last node in the `fromPath`\n * encapsulates the \"from state\".\n * @param targetState The target state and parameters being transitioned to (also, the transition options)\n * @param router The [[UIRouter]] instance\n */\n function Transition(fromPath, targetState, router) {\n var _this = this;\n /** @hidden */\n this._deferred = services.$q.defer();\n /**\n * This promise is resolved or rejected based on the outcome of the Transition.\n *\n * When the transition is successful, the promise is resolved\n * When the transition is unsuccessful, the promise is rejected with the [[Rejection]] or javascript error\n */\n this.promise = this._deferred.promise;\n /** @hidden Holds the hook registration functions such as those passed to Transition.onStart() */\n this._registeredHooks = {};\n /** @hidden */\n this._hookBuilder = new HookBuilder(this);\n /** Checks if this transition is currently active/running. */\n this.isActive = function () { return _this.router.globals.transition === _this; };\n this.router = router;\n this._targetState = targetState;\n if (!targetState.valid()) {\n throw new Error(targetState.error());\n }\n // current() is assumed to come from targetState.options, but provide a naive implementation otherwise.\n this._options = extend({ current: val(this) }, targetState.options());\n this.$id = router.transitionService._transitionCount++;\n var toPath = PathUtils.buildToPath(fromPath, targetState);\n this._treeChanges = PathUtils.treeChanges(fromPath, toPath, this._options.reloadState);\n this.createTransitionHookRegFns();\n var onCreateHooks = this._hookBuilder.buildHooksForPhase(TransitionHookPhase.CREATE);\n TransitionHook.invokeHooks(onCreateHooks, function () { return null; });\n this.applyViewConfigs(router);\n }\n /** @hidden */\n Transition.prototype.onBefore = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n Transition.prototype.onStart = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n Transition.prototype.onExit = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n Transition.prototype.onRetain = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n Transition.prototype.onEnter = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n Transition.prototype.onFinish = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n Transition.prototype.onSuccess = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n Transition.prototype.onError = function (criteria, callback, options) {\n return;\n };\n /** @hidden\n * Creates the transition-level hook registration functions\n * (which can then be used to register hooks)\n */\n Transition.prototype.createTransitionHookRegFns = function () {\n var _this = this;\n this.router.transitionService._pluginapi\n ._getEvents()\n .filter(function (type) { return type.hookPhase !== TransitionHookPhase.CREATE; })\n .forEach(function (type) { return makeEvent(_this, _this.router.transitionService, type); });\n };\n /** @internalapi */\n Transition.prototype.getHooks = function (hookName) {\n return this._registeredHooks[hookName];\n };\n Transition.prototype.applyViewConfigs = function (router) {\n var enteringStates = this._treeChanges.entering.map(function (node) { return node.state; });\n PathUtils.applyViewConfigs(router.transitionService.$view, this._treeChanges.to, enteringStates);\n };\n /**\n * @internalapi\n *\n * @returns the internal from [State] object\n */\n Transition.prototype.$from = function () {\n return tail(this._treeChanges.from).state;\n };\n /**\n * @internalapi\n *\n * @returns the internal to [State] object\n */\n Transition.prototype.$to = function () {\n return tail(this._treeChanges.to).state;\n };\n /**\n * Returns the \"from state\"\n *\n * Returns the state that the transition is coming *from*.\n *\n * @returns The state declaration object for the Transition's (\"from state\").\n */\n Transition.prototype.from = function () {\n return this.$from().self;\n };\n /**\n * Returns the \"to state\"\n *\n * Returns the state that the transition is going *to*.\n *\n * @returns The state declaration object for the Transition's target state (\"to state\").\n */\n Transition.prototype.to = function () {\n return this.$to().self;\n };\n /**\n * Gets the Target State\n *\n * A transition's [[TargetState]] encapsulates the [[to]] state, the [[params]], and the [[options]] as a single object.\n *\n * @returns the [[TargetState]] of this Transition\n */\n Transition.prototype.targetState = function () {\n return this._targetState;\n };\n /**\n * Determines whether two transitions are equivalent.\n * @deprecated\n */\n Transition.prototype.is = function (compare) {\n if (compare instanceof Transition) {\n // TODO: Also compare parameters\n return this.is({ to: compare.$to().name, from: compare.$from().name });\n }\n return !((compare.to && !matchState(this.$to(), compare.to, this)) ||\n (compare.from && !matchState(this.$from(), compare.from, this)));\n };\n Transition.prototype.params = function (pathname) {\n if (pathname === void 0) { pathname = 'to'; }\n return Object.freeze(this._treeChanges[pathname].map(prop('paramValues')).reduce(mergeR, {}));\n };\n Transition.prototype.paramsChanged = function () {\n var fromParams = this.params('from');\n var toParams = this.params('to');\n // All the parameters declared on both the \"to\" and \"from\" paths\n var allParamDescriptors = []\n .concat(this._treeChanges.to)\n .concat(this._treeChanges.from)\n .map(function (pathNode) { return pathNode.paramSchema; })\n .reduce(flattenR, [])\n .reduce(uniqR, []);\n var changedParamDescriptors = Param.changed(allParamDescriptors, fromParams, toParams);\n return changedParamDescriptors.reduce(function (changedValues, descriptor) {\n changedValues[descriptor.id] = toParams[descriptor.id];\n return changedValues;\n }, {});\n };\n /**\n * Creates a [[UIInjector]] Dependency Injector\n *\n * Returns a Dependency Injector for the Transition's target state (to state).\n * The injector provides resolve values which the target state has access to.\n *\n * The `UIInjector` can also provide values from the native root/global injector (ng1/ng2).\n *\n * #### Example:\n * ```js\n * .onEnter({ entering: 'myState' }, trans => {\n * var myResolveValue = trans.injector().get('myResolve');\n * // Inject a global service from the global/native injector (if it exists)\n * var MyService = trans.injector().get('MyService');\n * })\n * ```\n *\n * In some cases (such as `onBefore`), you may need access to some resolve data but it has not yet been fetched.\n * You can use [[UIInjector.getAsync]] to get a promise for the data.\n * #### Example:\n * ```js\n * .onBefore({}, trans => {\n * return trans.injector().getAsync('myResolve').then(myResolveValue =>\n * return myResolveValue !== 'ABORT';\n * });\n * });\n * ```\n *\n * If a `state` is provided, the injector that is returned will be limited to resolve values that the provided state has access to.\n * This can be useful if both a parent state `foo` and a child state `foo.bar` have both defined a resolve such as `data`.\n * #### Example:\n * ```js\n * .onEnter({ to: 'foo.bar' }, trans => {\n * // returns result of `foo` state's `myResolve` resolve\n * // even though `foo.bar` also has a `myResolve` resolve\n * var fooData = trans.injector('foo').get('myResolve');\n * });\n * ```\n *\n * If you need resolve data from the exiting states, pass `'from'` as `pathName`.\n * The resolve data from the `from` path will be returned.\n * #### Example:\n * ```js\n * .onExit({ exiting: 'foo.bar' }, trans => {\n * // Gets the resolve value of `myResolve` from the state being exited\n * var fooData = trans.injector(null, 'from').get('myResolve');\n * });\n * ```\n *\n *\n * @param state Limits the resolves provided to only the resolves the provided state has access to.\n * @param pathName Default: `'to'`: Chooses the path for which to create the injector. Use this to access resolves for `exiting` states.\n *\n * @returns a [[UIInjector]]\n */\n Transition.prototype.injector = function (state, pathName) {\n if (pathName === void 0) { pathName = 'to'; }\n var path = this._treeChanges[pathName];\n if (state)\n path = PathUtils.subPath(path, function (node) { return node.state === state || node.state.name === state; });\n return new ResolveContext(path).injector();\n };\n /**\n * Gets all available resolve tokens (keys)\n *\n * This method can be used in conjunction with [[injector]] to inspect the resolve values\n * available to the Transition.\n *\n * This returns all the tokens defined on [[StateDeclaration.resolve]] blocks, for the states\n * in the Transition's [[TreeChanges.to]] path.\n *\n * #### Example:\n * This example logs all resolve values\n * ```js\n * let tokens = trans.getResolveTokens();\n * tokens.forEach(token => console.log(token + \" = \" + trans.injector().get(token)));\n * ```\n *\n * #### Example:\n * This example creates promises for each resolve value.\n * This triggers fetches of resolves (if any have not yet been fetched).\n * When all promises have all settled, it logs the resolve values.\n * ```js\n * let tokens = trans.getResolveTokens();\n * let promise = tokens.map(token => trans.injector().getAsync(token));\n * Promise.all(promises).then(values => console.log(\"Resolved values: \" + values));\n * ```\n *\n * Note: Angular 1 users whould use `$q.all()`\n *\n * @param pathname resolve context's path name (e.g., `to` or `from`)\n *\n * @returns an array of resolve tokens (keys)\n */\n Transition.prototype.getResolveTokens = function (pathname) {\n if (pathname === void 0) { pathname = 'to'; }\n return new ResolveContext(this._treeChanges[pathname]).getTokens();\n };\n /**\n * Dynamically adds a new [[Resolvable]] (i.e., [[StateDeclaration.resolve]]) to this transition.\n *\n * Allows a transition hook to dynamically add a Resolvable to this Transition.\n *\n * Use the [[Transition.injector]] to retrieve the resolved data in subsequent hooks ([[UIInjector.get]]).\n *\n * If a `state` argument is provided, the Resolvable is processed when that state is being entered.\n * If no `state` is provided then the root state is used.\n * If the given `state` has already been entered, the Resolvable is processed when any child state is entered.\n * If no child states will be entered, the Resolvable is processed during the `onFinish` phase of the Transition.\n *\n * The `state` argument also scopes the resolved data.\n * The resolved data is available from the injector for that `state` and any children states.\n *\n * #### Example:\n * ```js\n * transitionService.onBefore({}, transition => {\n * transition.addResolvable({\n * token: 'myResolve',\n * deps: ['MyService'],\n * resolveFn: myService => myService.getData()\n * });\n * });\n * ```\n *\n * @param resolvable a [[ResolvableLiteral]] object (or a [[Resolvable]])\n * @param state the state in the \"to path\" which should receive the new resolve (otherwise, the root state)\n */\n Transition.prototype.addResolvable = function (resolvable, state) {\n if (state === void 0) { state = ''; }\n resolvable = is(Resolvable)(resolvable) ? resolvable : new Resolvable(resolvable);\n var stateName = typeof state === 'string' ? state : state.name;\n var topath = this._treeChanges.to;\n var targetNode = find(topath, function (node) { return node.state.name === stateName; });\n var resolveContext = new ResolveContext(topath);\n resolveContext.addResolvables([resolvable], targetNode.state);\n };\n /**\n * Gets the transition from which this transition was redirected.\n *\n * If the current transition is a redirect, this method returns the transition that was redirected.\n *\n * #### Example:\n * ```js\n * let transitionA = $state.go('A').transition\n * transitionA.onStart({}, () => $state.target('B'));\n * $transitions.onSuccess({ to: 'B' }, (trans) => {\n * trans.to().name === 'B'; // true\n * trans.redirectedFrom() === transitionA; // true\n * });\n * ```\n *\n * @returns The previous Transition, or null if this Transition is not the result of a redirection\n */\n Transition.prototype.redirectedFrom = function () {\n return this._options.redirectedFrom || null;\n };\n /**\n * Gets the original transition in a redirect chain\n *\n * A transition might belong to a long chain of multiple redirects.\n * This method walks the [[redirectedFrom]] chain back to the original (first) transition in the chain.\n *\n * #### Example:\n * ```js\n * // states\n * registry.register({ name: 'A', redirectTo: 'B' });\n * registry.register({ name: 'B', redirectTo: 'C' });\n * registry.register({ name: 'C', redirectTo: 'D' });\n * registry.register({ name: 'D' });\n *\n * let transitionA = $state.go('A').transition\n *\n * $transitions.onSuccess({ to: 'D' }, (trans) => {\n * trans.to().name === 'D'; // true\n * trans.redirectedFrom().to().name === 'C'; // true\n * trans.originalTransition() === transitionA; // true\n * trans.originalTransition().to().name === 'A'; // true\n * });\n * ```\n *\n * @returns The original Transition that started a redirect chain\n */\n Transition.prototype.originalTransition = function () {\n var rf = this.redirectedFrom();\n return (rf && rf.originalTransition()) || this;\n };\n /**\n * Get the transition options\n *\n * @returns the options for this Transition.\n */\n Transition.prototype.options = function () {\n return this._options;\n };\n /**\n * Gets the states being entered.\n *\n * @returns an array of states that will be entered during this transition.\n */\n Transition.prototype.entering = function () {\n return map(this._treeChanges.entering, prop('state')).map(stateSelf);\n };\n /**\n * Gets the states being exited.\n *\n * @returns an array of states that will be exited during this transition.\n */\n Transition.prototype.exiting = function () {\n return map(this._treeChanges.exiting, prop('state'))\n .map(stateSelf)\n .reverse();\n };\n /**\n * Gets the states being retained.\n *\n * @returns an array of states that are already entered from a previous Transition, that will not be\n * exited during this Transition\n */\n Transition.prototype.retained = function () {\n return map(this._treeChanges.retained, prop('state')).map(stateSelf);\n };\n /**\n * Get the [[ViewConfig]]s associated with this Transition\n *\n * Each state can define one or more views (template/controller), which are encapsulated as `ViewConfig` objects.\n * This method fetches the `ViewConfigs` for a given path in the Transition (e.g., \"to\" or \"entering\").\n *\n * @param pathname the name of the path to fetch views for:\n * (`'to'`, `'from'`, `'entering'`, `'exiting'`, `'retained'`)\n * @param state If provided, only returns the `ViewConfig`s for a single state in the path\n *\n * @returns a list of ViewConfig objects for the given path.\n */\n Transition.prototype.views = function (pathname, state) {\n if (pathname === void 0) { pathname = 'entering'; }\n var path = this._treeChanges[pathname];\n path = !state ? path : path.filter(propEq('state', state));\n return path\n .map(prop('views'))\n .filter(identity)\n .reduce(unnestR, []);\n };\n Transition.prototype.treeChanges = function (pathname) {\n return pathname ? this._treeChanges[pathname] : this._treeChanges;\n };\n /**\n * Creates a new transition that is a redirection of the current one.\n *\n * This transition can be returned from a [[TransitionService]] hook to\n * redirect a transition to a new state and/or set of parameters.\n *\n * @internalapi\n *\n * @returns Returns a new [[Transition]] instance.\n */\n Transition.prototype.redirect = function (targetState) {\n var redirects = 1, trans = this;\n // tslint:disable-next-line:no-conditional-assignment\n while ((trans = trans.redirectedFrom()) != null) {\n if (++redirects > 20)\n throw new Error(\"Too many consecutive Transition redirects (20+)\");\n }\n var redirectOpts = { redirectedFrom: this, source: 'redirect' };\n // If the original transition was caused by URL sync, then use { location: 'replace' }\n // on the new transition (unless the target state explicitly specifies location: false).\n // This causes the original url to be replaced with the url for the redirect target\n // so the original url disappears from the browser history.\n if (this.options().source === 'url' && targetState.options().location !== false) {\n redirectOpts.location = 'replace';\n }\n var newOptions = extend({}, this.options(), targetState.options(), redirectOpts);\n targetState = targetState.withOptions(newOptions, true);\n var newTransition = this.router.transitionService.create(this._treeChanges.from, targetState);\n var originalEnteringNodes = this._treeChanges.entering;\n var redirectEnteringNodes = newTransition._treeChanges.entering;\n // --- Re-use resolve data from original transition ---\n // When redirecting from a parent state to a child state where the parent parameter values haven't changed\n // (because of the redirect), the resolves fetched by the original transition are still valid in the\n // redirected transition.\n //\n // This allows you to define a redirect on a parent state which depends on an async resolve value.\n // You can wait for the resolve, then redirect to a child state based on the result.\n // The redirected transition does not have to re-fetch the resolve.\n // ---------------------------------------------------------\n var nodeIsReloading = function (reloadState) { return function (node) {\n return reloadState && node.state.includes[reloadState.name];\n }; };\n // Find any \"entering\" nodes in the redirect path that match the original path and aren't being reloaded\n var matchingEnteringNodes = PathUtils.matching(redirectEnteringNodes, originalEnteringNodes, PathUtils.nonDynamicParams).filter(not(nodeIsReloading(targetState.options().reloadState)));\n // Use the existing (possibly pre-resolved) resolvables for the matching entering nodes.\n matchingEnteringNodes.forEach(function (node, idx) {\n node.resolvables = originalEnteringNodes[idx].resolvables;\n });\n return newTransition;\n };\n /** @hidden If a transition doesn't exit/enter any states, returns any [[Param]] whose value changed */\n Transition.prototype._changedParams = function () {\n var tc = this._treeChanges;\n /** Return undefined if it's not a \"dynamic\" transition, for the following reasons */\n // If user explicitly wants a reload\n if (this._options.reload)\n return undefined;\n // If any states are exiting or entering\n if (tc.exiting.length || tc.entering.length)\n return undefined;\n // If to/from path lengths differ\n if (tc.to.length !== tc.from.length)\n return undefined;\n // If the to/from paths are different\n var pathsDiffer = arrayTuples(tc.to, tc.from)\n .map(function (tuple) { return tuple[0].state !== tuple[1].state; })\n .reduce(anyTrueR, false);\n if (pathsDiffer)\n return undefined;\n // Find any parameter values that differ\n var nodeSchemas = tc.to.map(function (node) { return node.paramSchema; });\n var _a = [tc.to, tc.from].map(function (path) { return path.map(function (x) { return x.paramValues; }); }), toValues = _a[0], fromValues = _a[1];\n var tuples = arrayTuples(nodeSchemas, toValues, fromValues);\n return tuples.map(function (_a) {\n var schema = _a[0], toVals = _a[1], fromVals = _a[2];\n return Param.changed(schema, toVals, fromVals);\n }).reduce(unnestR, []);\n };\n /**\n * Returns true if the transition is dynamic.\n *\n * A transition is dynamic if no states are entered nor exited, but at least one dynamic parameter has changed.\n *\n * @returns true if the Transition is dynamic\n */\n Transition.prototype.dynamic = function () {\n var changes = this._changedParams();\n return !changes ? false : changes.map(function (x) { return x.dynamic; }).reduce(anyTrueR, false);\n };\n /**\n * Returns true if the transition is ignored.\n *\n * A transition is ignored if no states are entered nor exited, and no parameter values have changed.\n *\n * @returns true if the Transition is ignored.\n */\n Transition.prototype.ignored = function () {\n return !!this._ignoredReason();\n };\n /** @hidden */\n Transition.prototype._ignoredReason = function () {\n var pending = this.router.globals.transition;\n var reloadState = this._options.reloadState;\n var same = function (pathA, pathB) {\n if (pathA.length !== pathB.length)\n return false;\n var matching = PathUtils.matching(pathA, pathB);\n return pathA.length === matching.filter(function (node) { return !reloadState || !node.state.includes[reloadState.name]; }).length;\n };\n var newTC = this.treeChanges();\n var pendTC = pending && pending.treeChanges();\n if (pendTC && same(pendTC.to, newTC.to) && same(pendTC.exiting, newTC.exiting))\n return 'SameAsPending';\n if (newTC.exiting.length === 0 && newTC.entering.length === 0 && same(newTC.from, newTC.to))\n return 'SameAsCurrent';\n };\n /**\n * Runs the transition\n *\n * This method is generally called from the [[StateService.transitionTo]]\n *\n * @internalapi\n *\n * @returns a promise for a successful transition.\n */\n Transition.prototype.run = function () {\n var _this = this;\n var runAllHooks = TransitionHook.runAllHooks;\n // Gets transition hooks array for the given phase\n var getHooksFor = function (phase) { return _this._hookBuilder.buildHooksForPhase(phase); };\n // When the chain is complete, then resolve or reject the deferred\n var transitionSuccess = function () {\n trace.traceSuccess(_this.$to(), _this);\n _this.success = true;\n _this._deferred.resolve(_this.to());\n runAllHooks(getHooksFor(TransitionHookPhase.SUCCESS));\n };\n var transitionError = function (reason) {\n trace.traceError(reason, _this);\n _this.success = false;\n _this._deferred.reject(reason);\n _this._error = reason;\n runAllHooks(getHooksFor(TransitionHookPhase.ERROR));\n };\n var runTransition = function () {\n // Wait to build the RUN hook chain until the BEFORE hooks are done\n // This allows a BEFORE hook to dynamically add additional RUN hooks via the Transition object.\n var allRunHooks = getHooksFor(TransitionHookPhase.RUN);\n var done = function () { return services.$q.when(undefined); };\n return TransitionHook.invokeHooks(allRunHooks, done);\n };\n var startTransition = function () {\n var globals = _this.router.globals;\n globals.lastStartedTransitionId = _this.$id;\n globals.transition = _this;\n globals.transitionHistory.enqueue(_this);\n trace.traceTransitionStart(_this);\n return services.$q.when(undefined);\n };\n var allBeforeHooks = getHooksFor(TransitionHookPhase.BEFORE);\n TransitionHook.invokeHooks(allBeforeHooks, startTransition)\n .then(runTransition)\n .then(transitionSuccess, transitionError);\n return this.promise;\n };\n /**\n * Checks if the Transition is valid\n *\n * @returns true if the Transition is valid\n */\n Transition.prototype.valid = function () {\n return !this.error() || this.success !== undefined;\n };\n /**\n * Aborts this transition\n *\n * Imperative API to abort a Transition.\n * This only applies to Transitions that are not yet complete.\n */\n Transition.prototype.abort = function () {\n // Do not set flag if the transition is already complete\n if (isUndefined(this.success)) {\n this._aborted = true;\n }\n };\n /**\n * The Transition error reason.\n *\n * If the transition is invalid (and could not be run), returns the reason the transition is invalid.\n * If the transition was valid and ran, but was not successful, returns the reason the transition failed.\n *\n * @returns a transition rejection explaining why the transition is invalid, or the reason the transition failed.\n */\n Transition.prototype.error = function () {\n var state = this.$to();\n if (state.self.abstract) {\n return Rejection.invalid(\"Cannot transition to abstract state '\" + state.name + \"'\");\n }\n var paramDefs = state.parameters();\n var values = this.params();\n var invalidParams = paramDefs.filter(function (param) { return !param.validates(values[param.id]); });\n if (invalidParams.length) {\n var invalidValues = invalidParams.map(function (param) { return \"[\" + param.id + \":\" + stringify(values[param.id]) + \"]\"; }).join(', ');\n var detail = \"The following parameter values are not valid for state '\" + state.name + \"': \" + invalidValues;\n return Rejection.invalid(detail);\n }\n if (this.success === false)\n return this._error;\n };\n /**\n * A string representation of the Transition\n *\n * @returns A string representation of the Transition\n */\n Transition.prototype.toString = function () {\n var fromStateOrName = this.from();\n var toStateOrName = this.to();\n var avoidEmptyHash = function (params) {\n return params['#'] !== null && params['#'] !== undefined ? params : omit(params, ['#']);\n };\n // (X) means the to state is invalid.\n var id = this.$id, from = isObject(fromStateOrName) ? fromStateOrName.name : fromStateOrName, fromParams = stringify(avoidEmptyHash(this._treeChanges.from.map(prop('paramValues')).reduce(mergeR, {}))), toValid = this.valid() ? '' : '(X) ', to = isObject(toStateOrName) ? toStateOrName.name : toStateOrName, toParams = stringify(avoidEmptyHash(this.params()));\n return \"Transition#\" + id + \"( '\" + from + \"'\" + fromParams + \" -> \" + toValid + \"'\" + to + \"'\" + toParams + \" )\";\n };\n /** @hidden */\n Transition.diToken = Transition;\n return Transition;\n}());\nexport { Transition };\n//# sourceMappingURL=transition.js.map","import { TransitionHook } from './transitionHook';\n/**\n * This class defines a type of hook, such as `onBefore` or `onEnter`.\n * Plugins can define custom hook types, such as sticky states does for `onInactive`.\n *\n * @interalapi\n */\nvar TransitionEventType = /** @class */ (function () {\n /* tslint:disable:no-inferrable-types */\n function TransitionEventType(name, hookPhase, hookOrder, criteriaMatchPath, reverseSort, getResultHandler, getErrorHandler, synchronous) {\n if (reverseSort === void 0) { reverseSort = false; }\n if (getResultHandler === void 0) { getResultHandler = TransitionHook.HANDLE_RESULT; }\n if (getErrorHandler === void 0) { getErrorHandler = TransitionHook.REJECT_ERROR; }\n if (synchronous === void 0) { synchronous = false; }\n this.name = name;\n this.hookPhase = hookPhase;\n this.hookOrder = hookOrder;\n this.criteriaMatchPath = criteriaMatchPath;\n this.reverseSort = reverseSort;\n this.getResultHandler = getResultHandler;\n this.getErrorHandler = getErrorHandler;\n this.synchronous = synchronous;\n }\n return TransitionEventType;\n}());\nexport { TransitionEventType };\n//# sourceMappingURL=transitionEventType.js.map","/** @publicapi @module transition */ /** */\nimport { TransitionHookPhase } from './interface';\nimport { defaults, noop, silentRejection } from '../common/common';\nimport { fnToString, maxLength } from '../common/strings';\nimport { isPromise } from '../common/predicates';\nimport { is, parse } from '../common/hof';\nimport { trace } from '../common/trace';\nimport { services } from '../common/coreservices';\nimport { Rejection } from './rejectFactory';\nimport { TargetState } from '../state/targetState';\nvar defaultOptions = {\n current: noop,\n transition: null,\n traceData: {},\n bind: null,\n};\n/** @hidden */\nvar TransitionHook = /** @class */ (function () {\n function TransitionHook(transition, stateContext, registeredHook, options) {\n var _this = this;\n this.transition = transition;\n this.stateContext = stateContext;\n this.registeredHook = registeredHook;\n this.options = options;\n this.isSuperseded = function () { return _this.type.hookPhase === TransitionHookPhase.RUN && !_this.options.transition.isActive(); };\n this.options = defaults(options, defaultOptions);\n this.type = registeredHook.eventType;\n }\n /**\n * Chains together an array of TransitionHooks.\n *\n * Given a list of [[TransitionHook]] objects, chains them together.\n * Each hook is invoked after the previous one completes.\n *\n * #### Example:\n * ```js\n * var hooks: TransitionHook[] = getHooks();\n * let promise: Promise = TransitionHook.chain(hooks);\n *\n * promise.then(handleSuccess, handleError);\n * ```\n *\n * @param hooks the list of hooks to chain together\n * @param waitFor if provided, the chain is `.then()`'ed off this promise\n * @returns a `Promise` for sequentially invoking the hooks (in order)\n */\n TransitionHook.chain = function (hooks, waitFor) {\n // Chain the next hook off the previous\n var createHookChainR = function (prev, nextHook) { return prev.then(function () { return nextHook.invokeHook(); }); };\n return hooks.reduce(createHookChainR, waitFor || services.$q.when());\n };\n /**\n * Invokes all the provided TransitionHooks, in order.\n * Each hook's return value is checked.\n * If any hook returns a promise, then the rest of the hooks are chained off that promise, and the promise is returned.\n * If no hook returns a promise, then all hooks are processed synchronously.\n *\n * @param hooks the list of TransitionHooks to invoke\n * @param doneCallback a callback that is invoked after all the hooks have successfully completed\n *\n * @returns a promise for the async result, or the result of the callback\n */\n TransitionHook.invokeHooks = function (hooks, doneCallback) {\n for (var idx = 0; idx < hooks.length; idx++) {\n var hookResult = hooks[idx].invokeHook();\n if (isPromise(hookResult)) {\n var remainingHooks = hooks.slice(idx + 1);\n return TransitionHook.chain(remainingHooks, hookResult).then(doneCallback);\n }\n }\n return doneCallback();\n };\n /**\n * Run all TransitionHooks, ignoring their return value.\n */\n TransitionHook.runAllHooks = function (hooks) {\n hooks.forEach(function (hook) { return hook.invokeHook(); });\n };\n TransitionHook.prototype.logError = function (err) {\n this.transition.router.stateService.defaultErrorHandler()(err);\n };\n TransitionHook.prototype.invokeHook = function () {\n var _this = this;\n var hook = this.registeredHook;\n if (hook._deregistered)\n return;\n var notCurrent = this.getNotCurrentRejection();\n if (notCurrent)\n return notCurrent;\n var options = this.options;\n trace.traceHookInvocation(this, this.transition, options);\n var invokeCallback = function () { return hook.callback.call(options.bind, _this.transition, _this.stateContext); };\n var normalizeErr = function (err) { return Rejection.normalize(err).toPromise(); };\n var handleError = function (err) { return hook.eventType.getErrorHandler(_this)(err); };\n var handleResult = function (result) { return hook.eventType.getResultHandler(_this)(result); };\n try {\n var result = invokeCallback();\n if (!this.type.synchronous && isPromise(result)) {\n return result.catch(normalizeErr).then(handleResult, handleError);\n }\n else {\n return handleResult(result);\n }\n }\n catch (err) {\n // If callback throws (synchronously)\n return handleError(Rejection.normalize(err));\n }\n finally {\n if (hook.invokeLimit && ++hook.invokeCount >= hook.invokeLimit) {\n hook.deregister();\n }\n }\n };\n /**\n * This method handles the return value of a Transition Hook.\n *\n * A hook can return false (cancel), a TargetState (redirect),\n * or a promise (which may later resolve to false or a redirect)\n *\n * This also handles \"transition superseded\" -- when a new transition\n * was started while the hook was still running\n */\n TransitionHook.prototype.handleHookResult = function (result) {\n var _this = this;\n var notCurrent = this.getNotCurrentRejection();\n if (notCurrent)\n return notCurrent;\n // Hook returned a promise\n if (isPromise(result)) {\n // Wait for the promise, then reprocess with the resulting value\n return result.then(function (val) { return _this.handleHookResult(val); });\n }\n trace.traceHookResult(result, this.transition, this.options);\n // Hook returned false\n if (result === false) {\n // Abort this Transition\n return Rejection.aborted('Hook aborted transition').toPromise();\n }\n var isTargetState = is(TargetState);\n // hook returned a TargetState\n if (isTargetState(result)) {\n // Halt the current Transition and redirect (a new Transition) to the TargetState.\n return Rejection.redirected(result).toPromise();\n }\n };\n /**\n * Return a Rejection promise if the transition is no longer current due\n * to a stopped router (disposed), or a new transition has started and superseded this one.\n */\n TransitionHook.prototype.getNotCurrentRejection = function () {\n var router = this.transition.router;\n // The router is stopped\n if (router._disposed) {\n return Rejection.aborted(\"UIRouter instance #\" + router.$id + \" has been stopped (disposed)\").toPromise();\n }\n if (this.transition._aborted) {\n return Rejection.aborted().toPromise();\n }\n // This transition is no longer current.\n // Another transition started while this hook was still running.\n if (this.isSuperseded()) {\n // Abort this transition\n return Rejection.superseded(this.options.current()).toPromise();\n }\n };\n TransitionHook.prototype.toString = function () {\n var _a = this, options = _a.options, registeredHook = _a.registeredHook;\n var event = parse('traceData.hookType')(options) || 'internal', context = parse('traceData.context.state.name')(options) || parse('traceData.context')(options) || 'unknown', name = fnToString(registeredHook.callback);\n return event + \" context: \" + context + \", \" + maxLength(200, name);\n };\n /**\n * These GetResultHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetResultHandler (See: [[TransitionService._defineCoreEvents]])\n */\n TransitionHook.HANDLE_RESULT = function (hook) { return function (result) {\n return hook.handleHookResult(result);\n }; };\n /**\n * If the result is a promise rejection, log it.\n * Otherwise, ignore the result.\n */\n TransitionHook.LOG_REJECTED_RESULT = function (hook) { return function (result) {\n isPromise(result) && result.catch(function (err) { return hook.logError(Rejection.normalize(err)); });\n return undefined;\n }; };\n /**\n * These GetErrorHandler(s) are used by [[invokeHook]] below\n * Each HookType chooses a GetErrorHandler (See: [[TransitionService._defineCoreEvents]])\n */\n TransitionHook.LOG_ERROR = function (hook) { return function (error) { return hook.logError(error); }; };\n TransitionHook.REJECT_ERROR = function (hook) { return function (error) { return silentRejection(error); }; };\n TransitionHook.THROW_ERROR = function (hook) { return function (error) {\n throw error;\n }; };\n return TransitionHook;\n}());\nexport { TransitionHook };\n//# sourceMappingURL=transitionHook.js.map","/** @publicapi @module transition */ /** */\nimport { TransitionHookScope, TransitionHookPhase, } from './interface';\nimport { Transition } from './transition';\nimport { makeEvent } from './hookRegistry';\nimport { registerAddCoreResolvables, treeChangesCleanup } from '../hooks/coreResolvables';\nimport { registerRedirectToHook } from '../hooks/redirectTo';\nimport { registerOnExitHook, registerOnRetainHook, registerOnEnterHook } from '../hooks/onEnterExitRetain';\nimport { registerEagerResolvePath, registerLazyResolveState, registerResolveRemaining } from '../hooks/resolve';\nimport { registerLoadEnteringViews, registerActivateViews } from '../hooks/views';\nimport { registerUpdateGlobalState } from '../hooks/updateGlobals';\nimport { registerUpdateUrl } from '../hooks/url';\nimport { registerLazyLoadHook } from '../hooks/lazyLoad';\nimport { TransitionEventType } from './transitionEventType';\nimport { TransitionHook } from './transitionHook';\nimport { isDefined } from '../common/predicates';\nimport { removeFrom, values, createProxyFunctions } from '../common/common';\nimport { val } from '../common/hof';\nimport { registerIgnoredTransitionHook } from '../hooks/ignoredTransition';\nimport { registerInvalidTransitionHook } from '../hooks/invalidTransition';\n/**\n * The default [[Transition]] options.\n *\n * Include this object when applying custom defaults:\n * let reloadOpts = { reload: true, notify: true }\n * let options = defaults(theirOpts, customDefaults, defaultOptions);\n */\nexport var defaultTransOpts = {\n location: true,\n relative: null,\n inherit: false,\n notify: true,\n reload: false,\n custom: {},\n current: function () { return null; },\n source: 'unknown',\n};\n/**\n * This class provides services related to Transitions.\n *\n * - Most importantly, it allows global Transition Hooks to be registered.\n * - It allows the default transition error handler to be set.\n * - It also has a factory function for creating new [[Transition]] objects, (used internally by the [[StateService]]).\n *\n * At bootstrap, [[UIRouter]] creates a single instance (singleton) of this class.\n */\nvar TransitionService = /** @class */ (function () {\n /** @hidden */\n function TransitionService(_router) {\n /** @hidden */\n this._transitionCount = 0;\n /** @hidden The transition hook types, such as `onEnter`, `onStart`, etc */\n this._eventTypes = [];\n /** @hidden The registered transition hooks */\n this._registeredHooks = {};\n /** @hidden The paths on a criteria object */\n this._criteriaPaths = {};\n this._router = _router;\n this.$view = _router.viewService;\n this._deregisterHookFns = {};\n this._pluginapi = (createProxyFunctions(val(this), {}, val(this), [\n '_definePathType',\n '_defineEvent',\n '_getPathTypes',\n '_getEvents',\n 'getHooks',\n ]));\n this._defineCorePaths();\n this._defineCoreEvents();\n this._registerCoreTransitionHooks();\n _router.globals.successfulTransitions.onEvict(treeChangesCleanup);\n }\n /**\n * Registers a [[TransitionHookFn]], called *while a transition is being constructed*.\n *\n * Registers a transition lifecycle hook, which is invoked during transition construction.\n *\n * This low level hook should only be used by plugins.\n * This can be a useful time for plugins to add resolves or mutate the transition as needed.\n * The Sticky States plugin uses this hook to modify the treechanges.\n *\n * ### Lifecycle\n *\n * `onCreate` hooks are invoked *while a transition is being constructed*.\n *\n * ### Return value\n *\n * The hook's return value is ignored\n *\n * @internalapi\n * @param criteria defines which Transitions the Hook should be invoked for.\n * @param callback the hook function which will be invoked.\n * @param options the registration options\n * @returns a function which deregisters the hook.\n */\n TransitionService.prototype.onCreate = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n TransitionService.prototype.onBefore = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n TransitionService.prototype.onStart = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n TransitionService.prototype.onExit = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n TransitionService.prototype.onRetain = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n TransitionService.prototype.onEnter = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n TransitionService.prototype.onFinish = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n TransitionService.prototype.onSuccess = function (criteria, callback, options) {\n return;\n };\n /** @inheritdoc */\n TransitionService.prototype.onError = function (criteria, callback, options) {\n return;\n };\n /**\n * dispose\n * @internalapi\n */\n TransitionService.prototype.dispose = function (router) {\n values(this._registeredHooks).forEach(function (hooksArray) {\n return hooksArray.forEach(function (hook) {\n hook._deregistered = true;\n removeFrom(hooksArray, hook);\n });\n });\n };\n /**\n * Creates a new [[Transition]] object\n *\n * This is a factory function for creating new Transition objects.\n * It is used internally by the [[StateService]] and should generally not be called by application code.\n *\n * @param fromPath the path to the current state (the from state)\n * @param targetState the target state (destination)\n * @returns a Transition\n */\n TransitionService.prototype.create = function (fromPath, targetState) {\n return new Transition(fromPath, targetState, this._router);\n };\n /** @hidden */\n TransitionService.prototype._defineCoreEvents = function () {\n var Phase = TransitionHookPhase;\n var TH = TransitionHook;\n var paths = this._criteriaPaths;\n var NORMAL_SORT = false, REVERSE_SORT = true;\n var SYNCHRONOUS = true;\n this._defineEvent('onCreate', Phase.CREATE, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.THROW_ERROR, SYNCHRONOUS);\n this._defineEvent('onBefore', Phase.BEFORE, 0, paths.to);\n this._defineEvent('onStart', Phase.RUN, 0, paths.to);\n this._defineEvent('onExit', Phase.RUN, 100, paths.exiting, REVERSE_SORT);\n this._defineEvent('onRetain', Phase.RUN, 200, paths.retained);\n this._defineEvent('onEnter', Phase.RUN, 300, paths.entering);\n this._defineEvent('onFinish', Phase.RUN, 400, paths.to);\n this._defineEvent('onSuccess', Phase.SUCCESS, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n this._defineEvent('onError', Phase.ERROR, 0, paths.to, NORMAL_SORT, TH.LOG_REJECTED_RESULT, TH.LOG_ERROR, SYNCHRONOUS);\n };\n /** @hidden */\n TransitionService.prototype._defineCorePaths = function () {\n var STATE = TransitionHookScope.STATE, TRANSITION = TransitionHookScope.TRANSITION;\n this._definePathType('to', TRANSITION);\n this._definePathType('from', TRANSITION);\n this._definePathType('exiting', STATE);\n this._definePathType('retained', STATE);\n this._definePathType('entering', STATE);\n };\n /** @hidden */\n TransitionService.prototype._defineEvent = function (name, hookPhase, hookOrder, criteriaMatchPath, reverseSort, getResultHandler, getErrorHandler, synchronous) {\n if (reverseSort === void 0) { reverseSort = false; }\n if (getResultHandler === void 0) { getResultHandler = TransitionHook.HANDLE_RESULT; }\n if (getErrorHandler === void 0) { getErrorHandler = TransitionHook.REJECT_ERROR; }\n if (synchronous === void 0) { synchronous = false; }\n var eventType = new TransitionEventType(name, hookPhase, hookOrder, criteriaMatchPath, reverseSort, getResultHandler, getErrorHandler, synchronous);\n this._eventTypes.push(eventType);\n makeEvent(this, this, eventType);\n };\n /** @hidden */\n // tslint:disable-next-line\n TransitionService.prototype._getEvents = function (phase) {\n var transitionHookTypes = isDefined(phase)\n ? this._eventTypes.filter(function (type) { return type.hookPhase === phase; })\n : this._eventTypes.slice();\n return transitionHookTypes.sort(function (l, r) {\n var cmpByPhase = l.hookPhase - r.hookPhase;\n return cmpByPhase === 0 ? l.hookOrder - r.hookOrder : cmpByPhase;\n });\n };\n /**\n * Adds a Path to be used as a criterion against a TreeChanges path\n *\n * For example: the `exiting` path in [[HookMatchCriteria]] is a STATE scoped path.\n * It was defined by calling `defineTreeChangesCriterion('exiting', TransitionHookScope.STATE)`\n * Each state in the exiting path is checked against the criteria and returned as part of the match.\n *\n * Another example: the `to` path in [[HookMatchCriteria]] is a TRANSITION scoped path.\n * It was defined by calling `defineTreeChangesCriterion('to', TransitionHookScope.TRANSITION)`\n * Only the tail of the `to` path is checked against the criteria and returned as part of the match.\n *\n * @hidden\n */\n TransitionService.prototype._definePathType = function (name, hookScope) {\n this._criteriaPaths[name] = { name: name, scope: hookScope };\n };\n /** * @hidden */\n // tslint:disable-next-line\n TransitionService.prototype._getPathTypes = function () {\n return this._criteriaPaths;\n };\n /** @hidden */\n TransitionService.prototype.getHooks = function (hookName) {\n return this._registeredHooks[hookName];\n };\n /** @hidden */\n TransitionService.prototype._registerCoreTransitionHooks = function () {\n var fns = this._deregisterHookFns;\n fns.addCoreResolves = registerAddCoreResolvables(this);\n fns.ignored = registerIgnoredTransitionHook(this);\n fns.invalid = registerInvalidTransitionHook(this);\n // Wire up redirectTo hook\n fns.redirectTo = registerRedirectToHook(this);\n // Wire up onExit/Retain/Enter state hooks\n fns.onExit = registerOnExitHook(this);\n fns.onRetain = registerOnRetainHook(this);\n fns.onEnter = registerOnEnterHook(this);\n // Wire up Resolve hooks\n fns.eagerResolve = registerEagerResolvePath(this);\n fns.lazyResolve = registerLazyResolveState(this);\n fns.resolveAll = registerResolveRemaining(this);\n // Wire up the View management hooks\n fns.loadViews = registerLoadEnteringViews(this);\n fns.activateViews = registerActivateViews(this);\n // Updates global state after a transition\n fns.updateGlobals = registerUpdateGlobalState(this);\n // After globals.current is updated at priority: 10000\n fns.updateUrl = registerUpdateUrl(this);\n // Lazy load state trees\n fns.lazyLoad = registerLazyLoadHook(this);\n };\n return TransitionService;\n}());\nexport { TransitionService };\n//# sourceMappingURL=transitionService.js.map","export * from './urlMatcher';\nexport * from './urlMatcherFactory';\nexport * from './urlRouter';\nexport * from './urlRule';\nexport * from './urlService';\nexport { UrlRules } from './urlRules';\nexport { UrlConfig } from './urlConfig';\n//# sourceMappingURL=index.js.map","import { ParamTypes } from '../params';\nimport { isDefined, isString } from '../common';\n/**\n * An API to customize the URL behavior and retrieve URL configuration\n *\n * This API is used to customize the behavior of the URL.\n * This includes optional trailing slashes ([[strictMode]]), case sensitivity ([[caseInsensitive]]),\n * and custom parameter encoding (custom [[type]]).\n *\n * It also has information about the location (url) configuration such as [[port]] and [[baseHref]].\n * This information can be used to build absolute URLs, such as\n * `https://example.com:443/basepath/state/substate?param1=a#hashvalue`;\n *\n * This API is a property of [[UrlService]] as [[UrlService.config]].\n */\nvar UrlConfig = /** @class */ (function () {\n /** @hidden */ function UrlConfig(/** @hidden */ router) {\n var _this = this;\n this.router = router;\n /** @hidden */ this.paramTypes = new ParamTypes();\n /** @hidden */ this._isCaseInsensitive = false;\n /** @hidden */ this._isStrictMode = true;\n /** @hidden */ this._defaultSquashPolicy = false;\n /** @internalapi */ this.dispose = function () { return _this.paramTypes.dispose(); };\n // Delegate these calls to the current LocationConfig implementation\n /**\n * Gets the base Href, e.g., `http://localhost/approot/`\n *\n * @return the application's base href\n */\n this.baseHref = function () { return _this.router.locationConfig.baseHref(); };\n /**\n * Gets or sets the hashPrefix\n *\n * This only applies when not running in [[html5Mode]] (pushstate mode)\n *\n * If the current url is `http://localhost/app#!/uirouter/path/#anchor`, it returns `!` which is the prefix for the \"hashbang\" portion.\n *\n * @return the hash prefix\n */\n this.hashPrefix = function (newprefix) { return _this.router.locationConfig.hashPrefix(newprefix); };\n /**\n * Gets the host, e.g., `localhost`\n *\n * @return the protocol\n */\n this.host = function () { return _this.router.locationConfig.host(); };\n /**\n * Returns true when running in pushstate mode\n *\n * @return true when running in html5 mode (pushstate mode).\n */\n this.html5Mode = function () { return _this.router.locationConfig.html5Mode(); };\n /**\n * Gets the port, e.g., `80`\n *\n * @return the port number\n */\n this.port = function () { return _this.router.locationConfig.port(); };\n /**\n * Gets the protocol, e.g., `http`\n *\n * @return the protocol\n */\n this.protocol = function () { return _this.router.locationConfig.protocol(); };\n }\n /**\n * Defines whether URL matching should be case sensitive (the default behavior), or not.\n *\n * #### Example:\n * ```js\n * // Allow case insensitive url matches\n * urlService.config.caseInsensitive(true);\n * ```\n *\n * @param value `false` to match URL in a case sensitive manner; otherwise `true`;\n * @returns the current value of caseInsensitive\n */\n UrlConfig.prototype.caseInsensitive = function (value) {\n return (this._isCaseInsensitive = isDefined(value) ? value : this._isCaseInsensitive);\n };\n /**\n * Sets the default behavior when generating or matching URLs with default parameter values.\n *\n * #### Example:\n * ```js\n * // Remove default parameter values from the url\n * urlService.config.defaultSquashPolicy(true);\n * ```\n *\n * @param value A string that defines the default parameter URL squashing behavior.\n * - `nosquash`: When generating an href with a default parameter value, do not squash the parameter value from the URL\n * - `slash`: When generating an href with a default parameter value, squash (remove) the parameter value, and, if the\n * parameter is surrounded by slashes, squash (remove) one slash from the URL\n * - any other string, e.g. \"~\": When generating an href with a default parameter value, squash (remove)\n * the parameter value from the URL and replace it with this string.\n * @returns the current value of defaultSquashPolicy\n */\n UrlConfig.prototype.defaultSquashPolicy = function (value) {\n if (isDefined(value) && value !== true && value !== false && !isString(value))\n throw new Error(\"Invalid squash policy: \" + value + \". Valid policies: false, true, arbitrary-string\");\n return (this._defaultSquashPolicy = isDefined(value) ? value : this._defaultSquashPolicy);\n };\n /**\n * Defines whether URLs should match trailing slashes, or not (the default behavior).\n *\n * #### Example:\n * ```js\n * // Allow optional trailing slashes\n * urlService.config.strictMode(false);\n * ```\n *\n * @param value `false` to match trailing slashes in URLs, otherwise `true`.\n * @returns the current value of strictMode\n */\n UrlConfig.prototype.strictMode = function (value) {\n return (this._isStrictMode = isDefined(value) ? value : this._isStrictMode);\n };\n /**\n * Creates and registers a custom [[ParamType]] object\n *\n * A custom parameter type can be used to generate URLs with typed parameters or custom encoding/decoding.\n *\n * #### Note: Register custom types *before using them* in a state definition.\n *\n * #### Example:\n * ```js\n * // Encode object parameter as JSON string\n * urlService.config.type('myjson', {\n * encode: (obj) => JSON.stringify(obj),\n * decode: (str) => JSON.parse(str),\n * is: (val) => typeof(val) === 'object',\n * pattern: /[^/]+/,\n * equals: (a, b) => _.isEqual(a, b),\n * });\n * ```\n *\n * See [[ParamTypeDefinition]] for more examples\n *\n * @param name The type name.\n * @param definition The type definition. See [[ParamTypeDefinition]] for information on the values accepted.\n * @param definitionFn A function that is injected before the app runtime starts.\n * The result of this function should be a [[ParamTypeDefinition]].\n * The result is merged into the existing `definition`.\n * See [[ParamType]] for information on the values accepted.\n *\n * @returns if only the `name` parameter was specified: the currently registered [[ParamType]] object, or undefined\n */\n UrlConfig.prototype.type = function (name, definition, definitionFn) {\n var type = this.paramTypes.type(name, definition, definitionFn);\n return !isDefined(definition) ? type : this;\n };\n return UrlConfig;\n}());\nexport { UrlConfig };\n//# sourceMappingURL=urlConfig.js.map","/** @publicapi @module url */ /** */\nimport { map, inherit, identity, unnest, tail, find, allTrueR, unnestR, arrayTuples } from '../common/common';\nimport { prop, propEq } from '../common/hof';\nimport { isArray, isString, isDefined } from '../common/predicates';\nimport { Param, DefType } from '../params/param';\nimport { joinNeighborsR, splitOnDelim } from '../common/strings';\nimport { defaults } from '../common';\n/** @hidden */\nfunction quoteRegExp(str, param) {\n var surroundPattern = ['', ''], result = str.replace(/[\\\\\\[\\]\\^$*+?.()|{}]/g, '\\\\$&');\n if (!param)\n return result;\n switch (param.squash) {\n case false:\n surroundPattern = ['(', ')' + (param.isOptional ? '?' : '')];\n break;\n case true:\n result = result.replace(/\\/$/, '');\n surroundPattern = ['(?:/(', ')|/)?'];\n break;\n default:\n surroundPattern = [\"(\" + param.squash + \"|\", ')?'];\n break;\n }\n return result + surroundPattern[0] + param.type.pattern.source + surroundPattern[1];\n}\n/** @hidden */\nvar memoizeTo = function (obj, _prop, fn) { return (obj[_prop] = obj[_prop] || fn()); };\n/** @hidden */\nvar splitOnSlash = splitOnDelim('/');\n/** @hidden */\nvar defaultConfig = {\n state: { params: {} },\n strict: true,\n caseInsensitive: true,\n};\n/**\n * Matches URLs against patterns.\n *\n * Matches URLs against patterns and extracts named parameters from the path or the search\n * part of the URL.\n *\n * A URL pattern consists of a path pattern, optionally followed by '?' and a list of search (query)\n * parameters. Multiple search parameter names are separated by '&'. Search parameters\n * do not influence whether or not a URL is matched, but their values are passed through into\n * the matched parameters returned by [[UrlMatcher.exec]].\n *\n * - *Path parameters* are defined using curly brace placeholders (`/somepath/{param}`)\n * or colon placeholders (`/somePath/:param`).\n *\n * - *A parameter RegExp* may be defined for a param after a colon\n * (`/somePath/{param:[a-zA-Z0-9]+}`) in a curly brace placeholder.\n * The regexp must match for the url to be matched.\n * Should the regexp itself contain curly braces, they must be in matched pairs or escaped with a backslash.\n *\n * Note: a RegExp parameter will encode its value using either [[ParamTypes.path]] or [[ParamTypes.query]].\n *\n * - *Custom parameter types* may also be specified after a colon (`/somePath/{param:int}`) in curly brace parameters.\n * See [[UrlMatcherFactory.type]] for more information.\n *\n * - *Catch-all parameters* are defined using an asterisk placeholder (`/somepath/*catchallparam`).\n * A catch-all * parameter value will contain the remainder of the URL.\n *\n * ---\n *\n * Parameter names may contain only word characters (latin letters, digits, and underscore) and\n * must be unique within the pattern (across both path and search parameters).\n * A path parameter matches any number of characters other than '/'. For catch-all\n * placeholders the path parameter matches any number of characters.\n *\n * Examples:\n *\n * * `'/hello/'` - Matches only if the path is exactly '/hello/'. There is no special treatment for\n * trailing slashes, and patterns have to match the entire path, not just a prefix.\n * * `'/user/:id'` - Matches '/user/bob' or '/user/1234!!!' or even '/user/' but not '/user' or\n * '/user/bob/details'. The second path segment will be captured as the parameter 'id'.\n * * `'/user/{id}'` - Same as the previous example, but using curly brace syntax.\n * * `'/user/{id:[^/]*}'` - Same as the previous example.\n * * `'/user/{id:[0-9a-fA-F]{1,8}}'` - Similar to the previous example, but only matches if the id\n * parameter consists of 1 to 8 hex digits.\n * * `'/files/{path:.*}'` - Matches any URL starting with '/files/' and captures the rest of the\n * path into the parameter 'path'.\n * * `'/files/*path'` - ditto.\n * * `'/calendar/{start:date}'` - Matches \"/calendar/2014-11-12\" (because the pattern defined\n * in the built-in `date` ParamType matches `2014-11-12`) and provides a Date object in $stateParams.start\n *\n */\nvar UrlMatcher = /** @class */ (function () {\n /**\n * @param pattern The pattern to compile into a matcher.\n * @param paramTypes The [[ParamTypes]] registry\n * @param paramFactory A [[ParamFactory]] object\n * @param config A [[UrlMatcherCompileConfig]] configuration object\n */\n function UrlMatcher(pattern, paramTypes, paramFactory, config) {\n var _this = this;\n /** @hidden */\n this._cache = { path: [this] };\n /** @hidden */\n this._children = [];\n /** @hidden */\n this._params = [];\n /** @hidden */\n this._segments = [];\n /** @hidden */\n this._compiled = [];\n this.config = config = defaults(config, defaultConfig);\n this.pattern = pattern;\n // Find all placeholders and create a compiled pattern, using either classic or curly syntax:\n // '*' name\n // ':' name\n // '{' name '}'\n // '{' name ':' regexp '}'\n // The regular expression is somewhat complicated due to the need to allow curly braces\n // inside the regular expression. The placeholder regexp breaks down as follows:\n // ([:*])([\\w\\[\\]]+) - classic placeholder ($1 / $2) (search version has - for snake-case)\n // \\{([\\w\\[\\]]+)(?:\\:\\s*( ... ))?\\} - curly brace placeholder ($3) with optional regexp/type ... ($4) (search version has - for snake-case\n // (?: ... | ... | ... )+ - the regexp consists of any number of atoms, an atom being either\n // [^{}\\\\]+ - anything other than curly braces or backslash\n // \\\\. - a backslash escape\n // \\{(?:[^{}\\\\]+|\\\\.)*\\} - a matched set of curly braces containing other atoms\n var placeholder = /([:*])([\\w\\[\\]]+)|\\{([\\w\\[\\]]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g;\n var searchPlaceholder = /([:]?)([\\w\\[\\].-]+)|\\{([\\w\\[\\].-]+)(?:\\:\\s*((?:[^{}\\\\]+|\\\\.|\\{(?:[^{}\\\\]+|\\\\.)*\\})+))?\\}/g;\n var patterns = [];\n var last = 0;\n var matchArray;\n var checkParamErrors = function (id) {\n if (!UrlMatcher.nameValidator.test(id))\n throw new Error(\"Invalid parameter name '\" + id + \"' in pattern '\" + pattern + \"'\");\n if (find(_this._params, propEq('id', id)))\n throw new Error(\"Duplicate parameter name '\" + id + \"' in pattern '\" + pattern + \"'\");\n };\n // Split into static segments separated by path parameter placeholders.\n // The number of segments is always 1 more than the number of parameters.\n var matchDetails = function (m, isSearch) {\n // IE[78] returns '' for unmatched groups instead of null\n var id = m[2] || m[3];\n var regexp = isSearch ? m[4] : m[4] || (m[1] === '*' ? '[\\\\s\\\\S]*' : null);\n var makeRegexpType = function (str) {\n return inherit(paramTypes.type(isSearch ? 'query' : 'path'), {\n pattern: new RegExp(str, _this.config.caseInsensitive ? 'i' : undefined),\n });\n };\n return {\n id: id,\n regexp: regexp,\n segment: pattern.substring(last, m.index),\n type: !regexp ? null : paramTypes.type(regexp) || makeRegexpType(regexp),\n };\n };\n var details;\n var segment;\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = placeholder.exec(pattern))) {\n details = matchDetails(matchArray, false);\n if (details.segment.indexOf('?') >= 0)\n break; // we're into the search part\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromPath(details.id, details.type, config.state));\n this._segments.push(details.segment);\n patterns.push([details.segment, tail(this._params)]);\n last = placeholder.lastIndex;\n }\n segment = pattern.substring(last);\n // Find any search parameter names and remove them from the last segment\n var i = segment.indexOf('?');\n if (i >= 0) {\n var search = segment.substring(i);\n segment = segment.substring(0, i);\n if (search.length > 0) {\n last = 0;\n // tslint:disable-next-line:no-conditional-assignment\n while ((matchArray = searchPlaceholder.exec(search))) {\n details = matchDetails(matchArray, true);\n checkParamErrors(details.id);\n this._params.push(paramFactory.fromSearch(details.id, details.type, config.state));\n last = placeholder.lastIndex;\n // check if ?&\n }\n }\n }\n this._segments.push(segment);\n this._compiled = patterns.map(function (_pattern) { return quoteRegExp.apply(null, _pattern); }).concat(quoteRegExp(segment));\n }\n /** @hidden */\n UrlMatcher.encodeDashes = function (str) {\n // Replace dashes with encoded \"\\-\"\n return encodeURIComponent(str).replace(/-/g, function (c) {\n return \"%5C%\" + c\n .charCodeAt(0)\n .toString(16)\n .toUpperCase();\n });\n };\n /** @hidden Given a matcher, return an array with the matcher's path segments and path params, in order */\n UrlMatcher.pathSegmentsAndParams = function (matcher) {\n var staticSegments = matcher._segments;\n var pathParams = matcher._params.filter(function (p) { return p.location === DefType.PATH; });\n return arrayTuples(staticSegments, pathParams.concat(undefined))\n .reduce(unnestR, [])\n .filter(function (x) { return x !== '' && isDefined(x); });\n };\n /** @hidden Given a matcher, return an array with the matcher's query params */\n UrlMatcher.queryParams = function (matcher) {\n return matcher._params.filter(function (p) { return p.location === DefType.SEARCH; });\n };\n /**\n * Compare two UrlMatchers\n *\n * This comparison function converts a UrlMatcher into static and dynamic path segments.\n * Each static path segment is a static string between a path separator (slash character).\n * Each dynamic segment is a path parameter.\n *\n * The comparison function sorts static segments before dynamic ones.\n */\n UrlMatcher.compare = function (a, b) {\n /**\n * Turn a UrlMatcher and all its parent matchers into an array\n * of slash literals '/', string literals, and Param objects\n *\n * This example matcher matches strings like \"/foo/:param/tail\":\n * var matcher = $umf.compile(\"/foo\").append($umf.compile(\"/:param\")).append($umf.compile(\"/\")).append($umf.compile(\"tail\"));\n * var result = segments(matcher); // [ '/', 'foo', '/', Param, '/', 'tail' ]\n *\n * Caches the result as `matcher._cache.segments`\n */\n var segments = function (matcher) {\n return (matcher._cache.segments =\n matcher._cache.segments ||\n matcher._cache.path\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .reduce(joinNeighborsR, [])\n .map(function (x) { return (isString(x) ? splitOnSlash(x) : x); })\n .reduce(unnestR, []));\n };\n /**\n * Gets the sort weight for each segment of a UrlMatcher\n *\n * Caches the result as `matcher._cache.weights`\n */\n var weights = function (matcher) {\n return (matcher._cache.weights =\n matcher._cache.weights ||\n segments(matcher).map(function (segment) {\n // Sort slashes first, then static strings, the Params\n if (segment === '/')\n return 1;\n if (isString(segment))\n return 2;\n if (segment instanceof Param)\n return 3;\n }));\n };\n /**\n * Pads shorter array in-place (mutates)\n */\n var padArrays = function (l, r, padVal) {\n var len = Math.max(l.length, r.length);\n while (l.length < len)\n l.push(padVal);\n while (r.length < len)\n r.push(padVal);\n };\n var weightsA = weights(a), weightsB = weights(b);\n padArrays(weightsA, weightsB, 0);\n var _pairs = arrayTuples(weightsA, weightsB);\n var cmp, i;\n for (i = 0; i < _pairs.length; i++) {\n cmp = _pairs[i][0] - _pairs[i][1];\n if (cmp !== 0)\n return cmp;\n }\n return 0;\n };\n /**\n * Creates a new concatenated UrlMatcher\n *\n * Builds a new UrlMatcher by appending another UrlMatcher to this one.\n *\n * @param url A `UrlMatcher` instance to append as a child of the current `UrlMatcher`.\n */\n UrlMatcher.prototype.append = function (url) {\n this._children.push(url);\n url._cache = {\n path: this._cache.path.concat(url),\n parent: this,\n pattern: null,\n };\n return url;\n };\n /** @hidden */\n UrlMatcher.prototype.isRoot = function () {\n return this._cache.path[0] === this;\n };\n /** Returns the input pattern string */\n UrlMatcher.prototype.toString = function () {\n return this.pattern;\n };\n /**\n * Tests the specified url/path against this matcher.\n *\n * Tests if the given url matches this matcher's pattern, and returns an object containing the captured\n * parameter values. Returns null if the path does not match.\n *\n * The returned object contains the values\n * of any search parameters that are mentioned in the pattern, but their value may be null if\n * they are not present in `search`. This means that search parameters are always treated\n * as optional.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q&r').exec('/user/bob', {\n * x: '1', q: 'hello'\n * });\n * // returns { id: 'bob', q: 'hello', r: null }\n * ```\n *\n * @param path The URL path to match, e.g. `$location.path()`.\n * @param search URL search parameters, e.g. `$location.search()`.\n * @param hash URL hash e.g. `$location.hash()`.\n * @param options\n *\n * @returns The captured parameter values.\n */\n UrlMatcher.prototype.exec = function (path, search, hash, options) {\n var _this = this;\n if (search === void 0) { search = {}; }\n if (options === void 0) { options = {}; }\n var match = memoizeTo(this._cache, 'pattern', function () {\n return new RegExp([\n '^',\n unnest(_this._cache.path.map(prop('_compiled'))).join(''),\n _this.config.strict === false ? '/?' : '',\n '$',\n ].join(''), _this.config.caseInsensitive ? 'i' : undefined);\n }).exec(path);\n if (!match)\n return null;\n // options = defaults(options, { isolate: false });\n var allParams = this.parameters(), pathParams = allParams.filter(function (param) { return !param.isSearch(); }), searchParams = allParams.filter(function (param) { return param.isSearch(); }), nPathSegments = this._cache.path.map(function (urlm) { return urlm._segments.length - 1; }).reduce(function (a, x) { return a + x; }), values = {};\n if (nPathSegments !== match.length - 1)\n throw new Error(\"Unbalanced capture group in route '\" + this.pattern + \"'\");\n function decodePathArray(paramVal) {\n var reverseString = function (str) {\n return str\n .split('')\n .reverse()\n .join('');\n };\n var unquoteDashes = function (str) { return str.replace(/\\\\-/g, '-'); };\n var split = reverseString(paramVal).split(/-(?!\\\\)/);\n var allReversed = map(split, reverseString);\n return map(allReversed, unquoteDashes).reverse();\n }\n for (var i = 0; i < nPathSegments; i++) {\n var param = pathParams[i];\n var value = match[i + 1];\n // if the param value matches a pre-replace pair, replace the value before decoding.\n for (var j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value)\n value = param.replace[j].to;\n }\n if (value && param.array === true)\n value = decodePathArray(value);\n if (isDefined(value))\n value = param.type.decode(value);\n values[param.id] = param.value(value);\n }\n searchParams.forEach(function (param) {\n var value = search[param.id];\n for (var j = 0; j < param.replace.length; j++) {\n if (param.replace[j].from === value)\n value = param.replace[j].to;\n }\n if (isDefined(value))\n value = param.type.decode(value);\n values[param.id] = param.value(value);\n });\n if (hash)\n values['#'] = hash;\n return values;\n };\n /**\n * @hidden\n * Returns all the [[Param]] objects of all path and search parameters of this pattern in order of appearance.\n *\n * @returns {Array.} An array of [[Param]] objects. Must be treated as read-only. If the\n * pattern has no parameters, an empty array is returned.\n */\n UrlMatcher.prototype.parameters = function (opts) {\n if (opts === void 0) { opts = {}; }\n if (opts.inherit === false)\n return this._params;\n return unnest(this._cache.path.map(function (matcher) { return matcher._params; }));\n };\n /**\n * @hidden\n * Returns a single parameter from this UrlMatcher by id\n *\n * @param id\n * @param opts\n * @returns {T|Param|any|boolean|UrlMatcher|null}\n */\n UrlMatcher.prototype.parameter = function (id, opts) {\n var _this = this;\n if (opts === void 0) { opts = {}; }\n var findParam = function () {\n for (var _i = 0, _a = _this._params; _i < _a.length; _i++) {\n var param = _a[_i];\n if (param.id === id)\n return param;\n }\n };\n var parent = this._cache.parent;\n return findParam() || (opts.inherit !== false && parent && parent.parameter(id, opts)) || null;\n };\n /**\n * Validates the input parameter values against this UrlMatcher\n *\n * Checks an object hash of parameters to validate their correctness according to the parameter\n * types of this `UrlMatcher`.\n *\n * @param params The object hash of parameters to validate.\n * @returns Returns `true` if `params` validates, otherwise `false`.\n */\n UrlMatcher.prototype.validates = function (params) {\n var validParamVal = function (param, val) { return !param || param.validates(val); };\n params = params || {};\n // I'm not sure why this checks only the param keys passed in, and not all the params known to the matcher\n var paramSchema = this.parameters().filter(function (paramDef) { return params.hasOwnProperty(paramDef.id); });\n return paramSchema.map(function (paramDef) { return validParamVal(paramDef, params[paramDef.id]); }).reduce(allTrueR, true);\n };\n /**\n * Given a set of parameter values, creates a URL from this UrlMatcher.\n *\n * Creates a URL that matches this pattern by substituting the specified values\n * for the path and search parameters.\n *\n * #### Example:\n * ```js\n * new UrlMatcher('/user/{id}?q').format({ id:'bob', q:'yes' });\n * // returns '/user/bob?q=yes'\n * ```\n *\n * @param values the values to substitute for the parameters in this pattern.\n * @returns the formatted URL (path and optionally search part).\n */\n UrlMatcher.prototype.format = function (values) {\n if (values === void 0) { values = {}; }\n // Build the full path of UrlMatchers (including all parent UrlMatchers)\n var urlMatchers = this._cache.path;\n // Extract all the static segments and Params (processed as ParamDetails)\n // into an ordered array\n var pathSegmentsAndParams = urlMatchers\n .map(UrlMatcher.pathSegmentsAndParams)\n .reduce(unnestR, [])\n .map(function (x) { return (isString(x) ? x : getDetails(x)); });\n // Extract the query params into a separate array\n var queryParams = urlMatchers\n .map(UrlMatcher.queryParams)\n .reduce(unnestR, [])\n .map(getDetails);\n var isInvalid = function (param) { return param.isValid === false; };\n if (pathSegmentsAndParams.concat(queryParams).filter(isInvalid).length) {\n return null;\n }\n /**\n * Given a Param, applies the parameter value, then returns detailed information about it\n */\n function getDetails(param) {\n // Normalize to typed value\n var value = param.value(values[param.id]);\n var isValid = param.validates(value);\n var isDefaultValue = param.isDefaultValue(value);\n // Check if we're in squash mode for the parameter\n var squash = isDefaultValue ? param.squash : false;\n // Allow the Parameter's Type to encode the value\n var encoded = param.type.encode(value);\n return { param: param, value: value, isValid: isValid, isDefaultValue: isDefaultValue, squash: squash, encoded: encoded };\n }\n // Build up the path-portion from the list of static segments and parameters\n var pathString = pathSegmentsAndParams.reduce(function (acc, x) {\n // The element is a static segment (a raw string); just append it\n if (isString(x))\n return acc + x;\n // Otherwise, it's a ParamDetails.\n var squash = x.squash, encoded = x.encoded, param = x.param;\n // If squash is === true, try to remove a slash from the path\n if (squash === true)\n return acc.match(/\\/$/) ? acc.slice(0, -1) : acc;\n // If squash is a string, use the string for the param value\n if (isString(squash))\n return acc + squash;\n if (squash !== false)\n return acc; // ?\n if (encoded == null)\n return acc;\n // If this parameter value is an array, encode the value using encodeDashes\n if (isArray(encoded))\n return acc + map(encoded, UrlMatcher.encodeDashes).join('-');\n // If the parameter type is \"raw\", then do not encodeURIComponent\n if (param.raw)\n return acc + encoded;\n // Encode the value\n return acc + encodeURIComponent(encoded);\n }, '');\n // Build the query string by applying parameter values (array or regular)\n // then mapping to key=value, then flattening and joining using \"&\"\n var queryString = queryParams\n .map(function (paramDetails) {\n var param = paramDetails.param, squash = paramDetails.squash, encoded = paramDetails.encoded, isDefaultValue = paramDetails.isDefaultValue;\n if (encoded == null || (isDefaultValue && squash !== false))\n return;\n if (!isArray(encoded))\n encoded = [encoded];\n if (encoded.length === 0)\n return;\n if (!param.raw)\n encoded = map(encoded, encodeURIComponent);\n return encoded.map(function (val) { return param.id + \"=\" + val; });\n })\n .filter(identity)\n .reduce(unnestR, [])\n .join('&');\n // Concat the pathstring with the queryString (if exists) and the hashString (if exists)\n return pathString + (queryString ? \"?\" + queryString : '') + (values['#'] ? '#' + values['#'] : '');\n };\n /** @hidden */\n UrlMatcher.nameValidator = /^\\w+([-.]+\\w+)*(?:\\[\\])?$/;\n return UrlMatcher;\n}());\nexport { UrlMatcher };\n//# sourceMappingURL=urlMatcher.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/** @publicapi @module url */ /** */\nimport { extend, forEach, isDefined, isFunction, isObject } from '../common';\nimport { UrlMatcher } from './urlMatcher';\nimport { DefType, Param } from '../params';\n/** @internalapi */\nvar ParamFactory = /** @class */ (function () {\n function ParamFactory(router) {\n this.router = router;\n }\n ParamFactory.prototype.fromConfig = function (id, type, state) {\n return new Param(id, type, DefType.CONFIG, this.router.urlService.config, state);\n };\n ParamFactory.prototype.fromPath = function (id, type, state) {\n return new Param(id, type, DefType.PATH, this.router.urlService.config, state);\n };\n ParamFactory.prototype.fromSearch = function (id, type, state) {\n return new Param(id, type, DefType.SEARCH, this.router.urlService.config, state);\n };\n return ParamFactory;\n}());\nexport { ParamFactory };\n/**\n * Factory for [[UrlMatcher]] instances.\n *\n * The factory is available to ng1 services as\n * `$urlMatcherFactory` or ng1 providers as `$urlMatcherFactoryProvider`.\n *\n * @internalapi\n */\nvar UrlMatcherFactory = /** @class */ (function () {\n // TODO: move implementations to UrlConfig (urlService.config)\n function UrlMatcherFactory(/** @hidden */ router) {\n var _this = this;\n this.router = router;\n /** @internalapi Creates a new [[Param]] for a given location (DefType) */\n this.paramFactory = new ParamFactory(this.router);\n /** @deprecated use [[UrlConfig.caseInsensitive]] */\n this.caseInsensitive = function (value) { return _this.router.urlService.config.caseInsensitive(value); };\n /** @deprecated use [[UrlConfig.defaultSquashPolicy]] */\n this.defaultSquashPolicy = function (value) { return _this.router.urlService.config.defaultSquashPolicy(value); };\n /** @deprecated use [[UrlConfig.strictMode]] */\n this.strictMode = function (value) { return _this.router.urlService.config.strictMode(value); };\n /** @deprecated use [[UrlConfig.type]] */\n this.type = function (name, definition, definitionFn) {\n return _this.router.urlService.config.type(name, definition, definitionFn) || _this;\n };\n extend(this, { UrlMatcher: UrlMatcher, Param: Param });\n }\n /**\n * Creates a [[UrlMatcher]] for the specified pattern.\n *\n * @param pattern The URL pattern.\n * @param config The config object hash.\n * @returns The UrlMatcher.\n */\n UrlMatcherFactory.prototype.compile = function (pattern, config) {\n var urlConfig = this.router.urlService.config;\n // backward-compatible support for config.params -> config.state.params\n var params = config && !config.state && config.params;\n config = params ? __assign({ state: { params: params } }, config) : config;\n var globalConfig = { strict: urlConfig._isStrictMode, caseInsensitive: urlConfig._isCaseInsensitive };\n return new UrlMatcher(pattern, urlConfig.paramTypes, this.paramFactory, extend(globalConfig, config));\n };\n /**\n * Returns true if the specified object is a [[UrlMatcher]], or false otherwise.\n *\n * @param object The object to perform the type check against.\n * @returns `true` if the object matches the `UrlMatcher` interface, by\n * implementing all the same methods.\n */\n UrlMatcherFactory.prototype.isMatcher = function (object) {\n // TODO: typeof?\n if (!isObject(object))\n return false;\n var result = true;\n forEach(UrlMatcher.prototype, function (val, name) {\n if (isFunction(val))\n result = result && (isDefined(object[name]) && isFunction(object[name]));\n });\n return result;\n };\n /** @hidden */\n UrlMatcherFactory.prototype.$get = function () {\n var urlConfig = this.router.urlService.config;\n urlConfig.paramTypes.enqueue = false;\n urlConfig.paramTypes._flushTypeQueue();\n return this;\n };\n return UrlMatcherFactory;\n}());\nexport { UrlMatcherFactory };\n//# sourceMappingURL=urlMatcherFactory.js.map","/** @publicapi @module url */ /** */\nimport { stripLastPathElement } from '../common';\nimport { UrlRuleFactory } from './urlRule';\n/** @hidden */\nfunction appendBasePath(url, isHtml5, absolute, baseHref) {\n if (baseHref === '/')\n return url;\n if (isHtml5)\n return stripLastPathElement(baseHref) + url;\n if (absolute)\n return baseHref.slice(1) + url;\n return url;\n}\n/**\n * Updates URL and responds to URL changes\n *\n * ### Deprecation warning:\n * This class is now considered to be an internal API\n * Use the [[UrlService]] instead.\n * For configuring URL rules, use the [[UrlRules]] which can be found as [[UrlService.rules]].\n *\n * @internalapi\n */\nvar UrlRouter = /** @class */ (function () {\n /** @hidden */\n function UrlRouter(/** @hidden */ router) {\n var _this = this;\n this.router = router;\n // Delegate these calls to [[UrlService]]\n /** @deprecated use [[UrlService.sync]]*/\n this.sync = function (evt) { return _this.router.urlService.sync(evt); };\n /** @deprecated use [[UrlService.listen]]*/\n this.listen = function (enabled) { return _this.router.urlService.listen(enabled); };\n /** @deprecated use [[UrlService.deferIntercept]]*/\n this.deferIntercept = function (defer) { return _this.router.urlService.deferIntercept(defer); };\n /** @deprecated use [[UrlService.match]]*/\n this.match = function (urlParts) { return _this.router.urlService.match(urlParts); };\n // Delegate these calls to [[UrlRules]]\n /** @deprecated use [[UrlRules.initial]]*/\n this.initial = function (handler) {\n return _this.router.urlService.rules.initial(handler);\n };\n /** @deprecated use [[UrlRules.otherwise]]*/\n this.otherwise = function (handler) {\n return _this.router.urlService.rules.otherwise(handler);\n };\n /** @deprecated use [[UrlRules.removeRule]]*/\n this.removeRule = function (rule) { return _this.router.urlService.rules.removeRule(rule); };\n /** @deprecated use [[UrlRules.rule]]*/\n this.rule = function (rule) { return _this.router.urlService.rules.rule(rule); };\n /** @deprecated use [[UrlRules.rules]]*/\n this.rules = function () { return _this.router.urlService.rules.rules(); };\n /** @deprecated use [[UrlRules.sort]]*/\n this.sort = function (compareFn) { return _this.router.urlService.rules.sort(compareFn); };\n /** @deprecated use [[UrlRules.when]]*/\n this.when = function (matcher, handler, options) { return _this.router.urlService.rules.when(matcher, handler, options); };\n this.urlRuleFactory = new UrlRuleFactory(router);\n }\n /**\n * Internal API.\n * @internalapi\n */\n UrlRouter.prototype.update = function (read) {\n var $url = this.router.locationService;\n if (read) {\n this.location = $url.url();\n return;\n }\n if ($url.url() === this.location)\n return;\n $url.url(this.location, true);\n };\n /**\n * Internal API.\n *\n * Pushes a new location to the browser history.\n *\n * @internalapi\n * @param urlMatcher\n * @param params\n * @param options\n */\n UrlRouter.prototype.push = function (urlMatcher, params, options) {\n var replace = options && !!options.replace;\n this.router.urlService.url(urlMatcher.format(params || {}), replace);\n };\n /**\n * Builds and returns a URL with interpolated parameters\n *\n * #### Example:\n * ```js\n * matcher = $umf.compile(\"/about/:person\");\n * params = { person: \"bob\" };\n * $bob = $urlRouter.href(matcher, params);\n * // $bob == \"/about/bob\";\n * ```\n *\n * @param urlMatcher The [[UrlMatcher]] object which is used as the template of the URL to generate.\n * @param params An object of parameter values to fill the matcher's required parameters.\n * @param options Options object. The options are:\n *\n * - **`absolute`** - {boolean=false}, If true will generate an absolute url, e.g. \"http://www.example.com/fullurl\".\n *\n * @returns Returns the fully compiled URL, or `null` if `params` fail validation against `urlMatcher`\n */\n UrlRouter.prototype.href = function (urlMatcher, params, options) {\n var url = urlMatcher.format(params);\n if (url == null)\n return null;\n options = options || { absolute: false };\n var cfg = this.router.urlService.config;\n var isHtml5 = cfg.html5Mode();\n if (!isHtml5 && url !== null) {\n url = '#' + cfg.hashPrefix() + url;\n }\n url = appendBasePath(url, isHtml5, options.absolute, cfg.baseHref());\n if (!options.absolute || !url) {\n return url;\n }\n var slash = !isHtml5 && url ? '/' : '';\n var cfgPort = cfg.port();\n var port = (cfgPort === 80 || cfgPort === 443 ? '' : ':' + cfgPort);\n return [cfg.protocol(), '://', cfg.host(), port, slash, url].join('');\n };\n Object.defineProperty(UrlRouter.prototype, \"interceptDeferred\", {\n /** @deprecated use [[UrlService.interceptDeferred]]*/\n get: function () {\n return this.router.urlService.interceptDeferred;\n },\n enumerable: true,\n configurable: true\n });\n return UrlRouter;\n}());\nexport { UrlRouter };\n//# sourceMappingURL=urlRouter.js.map","/** @publicapi @module url */ /** */\nimport { UrlMatcher } from './urlMatcher';\nimport { isString, isDefined, isFunction } from '../common/predicates';\nimport { identity, extend } from '../common/common';\nimport { is, pattern } from '../common/hof';\nimport { StateObject } from '../state/stateObject';\n/**\n * Creates a [[UrlRule]]\n *\n * Creates a [[UrlRule]] from a:\n *\n * - `string`\n * - [[UrlMatcher]]\n * - `RegExp`\n * - [[StateObject]]\n * @internalapi\n */\nvar UrlRuleFactory = /** @class */ (function () {\n function UrlRuleFactory(router) {\n this.router = router;\n }\n UrlRuleFactory.prototype.compile = function (str) {\n return this.router.urlMatcherFactory.compile(str);\n };\n UrlRuleFactory.prototype.create = function (what, handler) {\n var _this = this;\n var isState = StateObject.isState;\n var makeRule = pattern([\n [isString, function (_what) { return makeRule(_this.compile(_what)); }],\n [is(UrlMatcher), function (_what) { return _this.fromUrlMatcher(_what, handler); }],\n [isState, function (_what) { return _this.fromState(_what, _this.router); }],\n [is(RegExp), function (_what) { return _this.fromRegExp(_what, handler); }],\n [isFunction, function (_what) { return new BaseUrlRule(_what, handler); }],\n ]);\n var rule = makeRule(what);\n if (!rule)\n throw new Error(\"invalid 'what' in when()\");\n return rule;\n };\n /**\n * A UrlRule which matches based on a UrlMatcher\n *\n * The `handler` may be either a `string`, a [[UrlRuleHandlerFn]] or another [[UrlMatcher]]\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - matched parameter values ([[RawParams]] from [[UrlMatcher.exec]])\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, match => \"/home/\" + match.fooId + \"/\" + match.barId);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n *\n * ## Handler as UrlMatcher\n *\n * If `handler` is a UrlMatcher, the handler matcher is used to create the new url.\n * The `handler` UrlMatcher is formatted using the matched param from the first matcher.\n * The url is replaced with the result.\n *\n * #### Example:\n * ```js\n * var urlMatcher = $umf.compile(\"/foo/:fooId/:barId\");\n * var handler = $umf.compile(\"/home/:fooId/:barId\");\n * var rule = factory.fromUrlMatcher(urlMatcher, handler);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match); // '/home/123/456'\n * ```\n */\n UrlRuleFactory.prototype.fromUrlMatcher = function (urlMatcher, handler) {\n var _handler = handler;\n if (isString(handler))\n handler = this.router.urlMatcherFactory.compile(handler);\n if (is(UrlMatcher)(handler))\n _handler = function (match) { return handler.format(match); };\n function matchUrlParamters(url) {\n var params = urlMatcher.exec(url.path, url.search, url.hash);\n return urlMatcher.validates(params) && params;\n }\n // Prioritize URLs, lowest to highest:\n // - Some optional URL parameters, but none matched\n // - No optional parameters in URL\n // - Some optional parameters, some matched\n // - Some optional parameters, all matched\n function matchPriority(params) {\n var optional = urlMatcher.parameters().filter(function (param) { return param.isOptional; });\n if (!optional.length)\n return 0.000001;\n var matched = optional.filter(function (param) { return params[param.id]; });\n return matched.length / optional.length;\n }\n var details = { urlMatcher: urlMatcher, matchPriority: matchPriority, type: 'URLMATCHER' };\n return extend(new BaseUrlRule(matchUrlParamters, _handler), details);\n };\n /**\n * A UrlRule which matches a state by its url\n *\n * #### Example:\n * ```js\n * var rule = factory.fromState($state.get('foo'), router);\n * var match = rule.match('/foo/123/456'); // results in { fooId: '123', barId: '456' }\n * var result = rule.handler(match);\n * // Starts a transition to 'foo' with params: { fooId: '123', barId: '456' }\n * ```\n */\n UrlRuleFactory.prototype.fromState = function (state, router) {\n /**\n * Handles match by transitioning to matched state\n *\n * First checks if the router should start a new transition.\n * A new transition is not required if the current state's URL\n * and the new URL are already identical\n */\n var handler = function (match) {\n var $state = router.stateService;\n var globals = router.globals;\n if ($state.href(state, match) !== $state.href(globals.current, globals.params)) {\n $state.transitionTo(state, match, { inherit: true, source: 'url' });\n }\n };\n var details = { state: state, type: 'STATE' };\n return extend(this.fromUrlMatcher(state.url, handler), details);\n };\n /**\n * A UrlRule which matches based on a regular expression\n *\n * The `handler` may be either a [[UrlRuleHandlerFn]] or a string.\n *\n * ## Handler as a function\n *\n * If `handler` is a function, the function is invoked with:\n *\n * - regexp match array (from `regexp`)\n * - url: the current Url ([[UrlParts]])\n * - router: the router object ([[UIRouter]])\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, match => \"/home/\" + match[1])\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n *\n * ## Handler as string\n *\n * If `handler` is a string, the url is *replaced by the string* when the Rule is invoked.\n * The string is first interpolated using `string.replace()` style pattern.\n *\n * #### Example:\n * ```js\n * var rule = factory.fromRegExp(/^\\/foo\\/(bar|baz)$/, \"/home/$1\")\n * var match = rule.match('/foo/bar'); // results in [ '/foo/bar', 'bar' ]\n * var result = rule.handler(match); // '/home/bar'\n * ```\n */\n UrlRuleFactory.prototype.fromRegExp = function (regexp, handler) {\n if (regexp.global || regexp.sticky)\n throw new Error('Rule RegExp must not be global or sticky');\n /**\n * If handler is a string, the url will be replaced by the string.\n * If the string has any String.replace() style variables in it (like `$2`),\n * they will be replaced by the captures from [[match]]\n */\n var redirectUrlTo = function (match) {\n // Interpolates matched values into $1 $2, etc using a String.replace()-style pattern\n return handler.replace(/\\$(\\$|\\d{1,2})/, function (m, what) { return match[what === '$' ? 0 : Number(what)]; });\n };\n var _handler = isString(handler) ? redirectUrlTo : handler;\n var matchParamsFromRegexp = function (url) { return regexp.exec(url.path); };\n var details = { regexp: regexp, type: 'REGEXP' };\n return extend(new BaseUrlRule(matchParamsFromRegexp, _handler), details);\n };\n UrlRuleFactory.isUrlRule = function (obj) { return obj && ['type', 'match', 'handler'].every(function (key) { return isDefined(obj[key]); }); };\n return UrlRuleFactory;\n}());\nexport { UrlRuleFactory };\n/**\n * A base rule which calls `match`\n *\n * The value from the `match` function is passed through to the `handler`.\n * @internalapi\n */\nvar BaseUrlRule = /** @class */ (function () {\n function BaseUrlRule(match, handler) {\n var _this = this;\n this.match = match;\n this.type = 'RAW';\n this.matchPriority = function (match) { return 0 - _this.$id; };\n this.handler = handler || identity;\n }\n return BaseUrlRule;\n}());\nexport { BaseUrlRule };\n//# sourceMappingURL=urlRule.js.map","import { TargetState } from '../state';\nimport { UrlMatcher } from './urlMatcher';\nimport { is, isDefined, isFunction, isString, removeFrom, val } from '../common';\nimport { UrlRuleFactory } from './urlRule';\n/** @hidden */\nvar prioritySort = function (a, b) { return (b.priority || 0) - (a.priority || 0); };\n/** @hidden */\nvar typeSort = function (a, b) {\n var weights = { STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1 };\n return (weights[a.type] || 0) - (weights[b.type] || 0);\n};\n/** @hidden */\nvar urlMatcherSort = function (a, b) {\n return !a.urlMatcher || !b.urlMatcher ? 0 : UrlMatcher.compare(a.urlMatcher, b.urlMatcher);\n};\n/** @hidden */\nvar idSort = function (a, b) {\n // Identically sorted STATE and URLMATCHER best rule will be chosen by `matchPriority` after each rule matches the URL\n var useMatchPriority = { STATE: true, URLMATCHER: true };\n var equal = useMatchPriority[a.type] && useMatchPriority[b.type];\n return equal ? 0 : (a.$id || 0) - (b.$id || 0);\n};\n/**\n * Default rule priority sorting function.\n *\n * Sorts rules by:\n *\n * - Explicit priority (set rule priority using [[UrlRules.when]])\n * - Rule type (STATE: 4, URLMATCHER: 4, REGEXP: 3, RAW: 2, OTHER: 1)\n * - `UrlMatcher` specificity ([[UrlMatcher.compare]]): works for STATE and URLMATCHER types to pick the most specific rule.\n * - Rule registration order (for rule types other than STATE and URLMATCHER)\n * - Equally sorted State and UrlMatcher rules will each match the URL.\n * Then, the *best* match is chosen based on how many parameter values were matched.\n *\n * @publicapi\n */\nvar defaultRuleSortFn;\ndefaultRuleSortFn = function (a, b) {\n var cmp = prioritySort(a, b);\n if (cmp !== 0)\n return cmp;\n cmp = typeSort(a, b);\n if (cmp !== 0)\n return cmp;\n cmp = urlMatcherSort(a, b);\n if (cmp !== 0)\n return cmp;\n return idSort(a, b);\n};\n/** @hidden */\nfunction getHandlerFn(handler) {\n if (!isFunction(handler) && !isString(handler) && !is(TargetState)(handler) && !TargetState.isDef(handler)) {\n throw new Error(\"'handler' must be a string, function, TargetState, or have a state: 'newtarget' property\");\n }\n return isFunction(handler) ? handler : val(handler);\n}\n/**\n * API for managing URL rules\n *\n * This API is used to create and manage URL rules.\n * URL rules are a mechanism to respond to specific URL patterns.\n *\n * The most commonly used methods are [[otherwise]] and [[when]].\n *\n * This API is a property of [[UrlService]] as [[UrlService.rules]]\n *\n * @publicapi\n */\nvar UrlRules = /** @class */ (function () {\n /** @hidden */\n function UrlRules(/** @hidden */ router) {\n this.router = router;\n /** @hidden */ this._sortFn = defaultRuleSortFn;\n /** @hidden */ this._rules = [];\n /** @hidden */ this._id = 0;\n this.urlRuleFactory = new UrlRuleFactory(router);\n }\n /** @hidden */\n UrlRules.prototype.dispose = function (router) {\n this._rules = [];\n delete this._otherwiseFn;\n };\n /**\n * Defines the initial state, path, or behavior to use when the app starts.\n *\n * This rule defines the initial/starting state for the application.\n *\n * This rule is triggered the first time the URL is checked (when the app initially loads).\n * The rule is triggered only when the url matches either `\"\"` or `\"/\"`.\n *\n * Note: The rule is intended to be used when the root of the application is directly linked to.\n * When the URL is *not* `\"\"` or `\"/\"` and doesn't match other rules, the [[otherwise]] rule is triggered.\n * This allows 404-like behavior when an unknown URL is deep-linked.\n *\n * #### Example:\n * Start app at `home` state.\n * ```js\n * .initial({ state: 'home' });\n * ```\n *\n * #### Example:\n * Start app at `/home` (by url)\n * ```js\n * .initial('/home');\n * ```\n *\n * #### Example:\n * When no other url rule matches, go to `home` state\n * ```js\n * .initial((matchValue, url, router) => {\n * console.log('initial state');\n * return { state: 'home' };\n * })\n * ```\n *\n * @param handler The initial state or url path, or a function which returns the state or url path (or performs custom logic).\n */\n UrlRules.prototype.initial = function (handler) {\n var handlerFn = getHandlerFn(handler);\n var matchFn = function (urlParts, router) {\n return router.globals.transitionHistory.size() === 0 && !!/^\\/?$/.exec(urlParts.path);\n };\n this.rule(this.urlRuleFactory.create(matchFn, handlerFn));\n };\n /**\n * Defines the state, url, or behavior to use when no other rule matches the URL.\n *\n * This rule is matched when *no other rule* matches.\n * It is generally used to handle unknown URLs (similar to \"404\" behavior, but on the client side).\n *\n * - If `handler` a string, it is treated as a url redirect\n *\n * #### Example:\n * When no other url rule matches, redirect to `/index`\n * ```js\n * .otherwise('/index');\n * ```\n *\n * - If `handler` is an object with a `state` property, the state is activated.\n *\n * #### Example:\n * When no other url rule matches, redirect to `home` and provide a `dashboard` parameter value.\n * ```js\n * .otherwise({ state: 'home', params: { dashboard: 'default' } });\n * ```\n *\n * - If `handler` is a function, the function receives the current url ([[UrlParts]]) and the [[UIRouter]] object.\n * The function can perform actions, and/or return a value.\n *\n * #### Example:\n * When no other url rule matches, manually trigger a transition to the `home` state\n * ```js\n * .otherwise((matchValue, urlParts, router) => {\n * router.stateService.go('home');\n * });\n * ```\n *\n * #### Example:\n * When no other url rule matches, go to `home` state\n * ```js\n * .otherwise((matchValue, urlParts, router) => {\n * return { state: 'home' };\n * });\n * ```\n *\n * @param handler The url path to redirect to, or a function which returns the url path (or performs custom logic).\n */\n UrlRules.prototype.otherwise = function (handler) {\n var handlerFn = getHandlerFn(handler);\n this._otherwiseFn = this.urlRuleFactory.create(val(true), handlerFn);\n this._sorted = false;\n };\n /**\n * Remove a rule previously registered\n *\n * @param rule the matcher rule that was previously registered using [[rule]]\n */\n UrlRules.prototype.removeRule = function (rule) {\n removeFrom(this._rules, rule);\n };\n /**\n * Manually adds a URL Rule.\n *\n * Usually, a url rule is added using [[StateDeclaration.url]] or [[when]].\n * This api can be used directly for more control (to register a [[BaseUrlRule]], for example).\n * Rules can be created using [[urlRuleFactory]], or created manually as simple objects.\n *\n * A rule should have a `match` function which returns truthy if the rule matched.\n * It should also have a `handler` function which is invoked if the rule is the best match.\n *\n * @return a function that deregisters the rule\n */\n UrlRules.prototype.rule = function (rule) {\n var _this = this;\n if (!UrlRuleFactory.isUrlRule(rule))\n throw new Error('invalid rule');\n rule.$id = this._id++;\n rule.priority = rule.priority || 0;\n this._rules.push(rule);\n this._sorted = false;\n return function () { return _this.removeRule(rule); };\n };\n /**\n * Gets all registered rules\n *\n * @returns an array of all the registered rules\n */\n UrlRules.prototype.rules = function () {\n this.ensureSorted();\n return this._rules.concat(this._otherwiseFn ? [this._otherwiseFn] : []);\n };\n /**\n * Defines URL Rule priorities\n *\n * More than one rule ([[UrlRule]]) might match a given URL.\n * This `compareFn` is used to sort the rules by priority.\n * Higher priority rules should sort earlier.\n *\n * The [[defaultRuleSortFn]] is used by default.\n *\n * You only need to call this function once.\n * The `compareFn` will be used to sort the rules as each is registered.\n *\n * If called without any parameter, it will re-sort the rules.\n *\n * ---\n *\n * Url rules may come from multiple sources: states's urls ([[StateDeclaration.url]]), [[when]], and [[rule]].\n * Each rule has a (user-provided) [[UrlRule.priority]], a [[UrlRule.type]], and a [[UrlRule.$id]]\n * The `$id` is is the order in which the rule was registered.\n *\n * The sort function should use these data, or data found on a specific type\n * of [[UrlRule]] (such as [[StateRule.state]]), to order the rules as desired.\n *\n * #### Example:\n * This compare function prioritizes rules by the order in which the rules were registered.\n * A rule registered earlier has higher priority.\n *\n * ```js\n * function compareFn(a, b) {\n * return a.$id - b.$id;\n * }\n * ```\n *\n * @param compareFn a function that compares to [[UrlRule]] objects.\n * The `compareFn` should abide by the `Array.sort` compare function rules.\n * Given two rules, `a` and `b`, return a negative number if `a` should be higher priority.\n * Return a positive number if `b` should be higher priority.\n * Return `0` if the rules are identical.\n *\n * See the [mozilla reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Description)\n * for details.\n */\n UrlRules.prototype.sort = function (compareFn) {\n var sorted = this.stableSort(this._rules, (this._sortFn = compareFn || this._sortFn));\n // precompute _sortGroup values and apply to each rule\n var group = 0;\n for (var i = 0; i < sorted.length; i++) {\n sorted[i]._group = group;\n if (i < sorted.length - 1 && this._sortFn(sorted[i], sorted[i + 1]) !== 0) {\n group++;\n }\n }\n this._rules = sorted;\n this._sorted = true;\n };\n /** @hidden */\n UrlRules.prototype.ensureSorted = function () {\n this._sorted || this.sort();\n };\n /** @hidden */\n UrlRules.prototype.stableSort = function (arr, compareFn) {\n var arrOfWrapper = arr.map(function (elem, idx) { return ({ elem: elem, idx: idx }); });\n arrOfWrapper.sort(function (wrapperA, wrapperB) {\n var cmpDiff = compareFn(wrapperA.elem, wrapperB.elem);\n return cmpDiff === 0 ? wrapperA.idx - wrapperB.idx : cmpDiff;\n });\n return arrOfWrapper.map(function (wrapper) { return wrapper.elem; });\n };\n /**\n * Registers a `matcher` and `handler` for custom URLs handling.\n *\n * The `matcher` can be:\n *\n * - a [[UrlMatcher]]: See: [[UrlMatcherFactory.compile]]\n * - a `string`: The string is compiled to a [[UrlMatcher]]\n * - a `RegExp`: The regexp is used to match the url.\n *\n * The `handler` can be:\n *\n * - a string: The url is redirected to the value of the string.\n * - a function: The url is redirected to the return value of the function.\n *\n * ---\n *\n * When the `handler` is a `string` and the `matcher` is a `UrlMatcher` (or string), the redirect\n * string is interpolated with parameter values.\n *\n * #### Example:\n * When the URL is `/foo/123` the rule will redirect to `/bar/123`.\n * ```js\n * .when(\"/foo/:param1\", \"/bar/:param1\")\n * ```\n *\n * ---\n *\n * When the `handler` is a string and the `matcher` is a `RegExp`, the redirect string is\n * interpolated with capture groups from the RegExp.\n *\n * #### Example:\n * When the URL is `/foo/123` the rule will redirect to `/bar/123`.\n * ```js\n * .when(new RegExp(\"^/foo/(.*)$\"), \"/bar/$1\");\n * ```\n *\n * ---\n *\n * When the handler is a function, it receives the matched value, the current URL, and the `UIRouter` object (See [[UrlRuleHandlerFn]]).\n * The \"matched value\" differs based on the `matcher`.\n * For [[UrlMatcher]]s, it will be the matched state params.\n * For `RegExp`, it will be the match array from `regexp.exec()`.\n *\n * If the handler returns a string, the URL is redirected to the string.\n *\n * #### Example:\n * When the URL is `/foo/123` the rule will redirect to `/bar/123`.\n * ```js\n * .when(new RegExp(\"^/foo/(.*)$\"), match => \"/bar/\" + match[1]);\n * ```\n *\n * Note: the `handler` may also invoke arbitrary code, such as `$state.go()`\n *\n * @param matcher A pattern `string` to match, compiled as a [[UrlMatcher]], or a `RegExp`.\n * @param handler The path to redirect to, or a function that returns the path.\n * @param options `{ priority: number }`\n *\n * @return the registered [[UrlRule]]\n */\n UrlRules.prototype.when = function (matcher, handler, options) {\n var rule = this.urlRuleFactory.create(matcher, handler);\n if (isDefined(options && options.priority))\n rule.priority = options.priority;\n this.rule(rule);\n return rule;\n };\n return UrlRules;\n}());\nexport { UrlRules };\n//# sourceMappingURL=urlRules.js.map","import { extend, is, isString, pattern } from '../common';\nimport { UrlRules } from './urlRules';\nimport { UrlConfig } from './urlConfig';\nimport { TargetState } from '../state';\n/** API for URL management */\nvar UrlService = /** @class */ (function () {\n /** @hidden */\n function UrlService(/** @hidden */ router) {\n var _this = this;\n this.router = router;\n /** @hidden */ this.interceptDeferred = false;\n /**\n * The nested [[UrlRules]] API for managing URL rules and rewrites\n *\n * See: [[UrlRules]] for details\n */\n this.rules = new UrlRules(this.router);\n /**\n * The nested [[UrlConfig]] API to configure the URL and retrieve URL information\n *\n * See: [[UrlConfig]] for details\n */\n this.config = new UrlConfig(this.router);\n // Delegate these calls to the current LocationServices implementation\n /**\n * Gets the current url, or updates the url\n *\n * ### Getting the current URL\n *\n * When no arguments are passed, returns the current URL.\n * The URL is normalized using the internal [[path]]/[[search]]/[[hash]] values.\n *\n * For example, the URL may be stored in the hash ([[HashLocationServices]]) or\n * have a base HREF prepended ([[PushStateLocationServices]]).\n *\n * The raw URL in the browser might be:\n *\n * ```\n * http://mysite.com/somepath/index.html#/internal/path/123?param1=foo#anchor\n * ```\n *\n * or\n *\n * ```\n * http://mysite.com/basepath/internal/path/123?param1=foo#anchor\n * ```\n *\n * then this method returns:\n *\n * ```\n * /internal/path/123?param1=foo#anchor\n * ```\n *\n *\n * #### Example:\n * ```js\n * locationServices.url(); // \"/some/path?query=value#anchor\"\n * ```\n *\n * ### Updating the URL\n *\n * When `newurl` arguments is provided, changes the URL to reflect `newurl`\n *\n * #### Example:\n * ```js\n * locationServices.url(\"/some/path?query=value#anchor\", true);\n * ```\n *\n * @param newurl The new value for the URL.\n * This url should reflect only the new internal [[path]], [[search]], and [[hash]] values.\n * It should not include the protocol, site, port, or base path of an absolute HREF.\n * @param replace When true, replaces the current history entry (instead of appending it) with this new url\n * @param state The history's state object, i.e., pushState (if the LocationServices implementation supports it)\n *\n * @return the url (after potentially being processed)\n */\n this.url = function (newurl, replace, state) {\n return _this.router.locationService.url(newurl, replace, state);\n };\n /**\n * Gets the path part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `/some/path`\n *\n * @return the path portion of the url\n */\n this.path = function () { return _this.router.locationService.path(); };\n /**\n * Gets the search part of the current url as an object\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `{ query: 'value' }`\n *\n * @return the search (query) portion of the url, as an object\n */\n this.search = function () { return _this.router.locationService.search(); };\n /**\n * Gets the hash part of the current url\n *\n * If the current URL is `/some/path?query=value#anchor`, this returns `anchor`\n *\n * @return the hash (anchor) portion of the url\n */\n this.hash = function () { return _this.router.locationService.hash(); };\n /**\n * @internalapi\n *\n * Registers a low level url change handler\n *\n * Note: Because this is a low level handler, it's not recommended for general use.\n *\n * #### Example:\n * ```js\n * let deregisterFn = locationServices.onChange((evt) => console.log(\"url change\", evt));\n * ```\n *\n * @param callback a function that will be called when the url is changing\n * @return a function that de-registers the callback\n */\n this.onChange = function (callback) { return _this.router.locationService.onChange(callback); };\n }\n /** @hidden */\n UrlService.prototype.dispose = function () {\n this.listen(false);\n this.rules.dispose();\n };\n /**\n * Gets the current URL parts\n *\n * This method returns the different parts of the current URL (the [[path]], [[search]], and [[hash]]) as a [[UrlParts]] object.\n */\n UrlService.prototype.parts = function () {\n return { path: this.path(), search: this.search(), hash: this.hash() };\n };\n /**\n * Activates the best rule for the current URL\n *\n * Checks the current URL for a matching [[UrlRule]], then invokes that rule's handler.\n * This method is called internally any time the URL has changed.\n *\n * This effectively activates the state (or redirect, etc) which matches the current URL.\n *\n * #### Example:\n * ```js\n * urlService.deferIntercept();\n *\n * fetch('/states.json').then(resp => resp.json()).then(data => {\n * data.forEach(state => $stateRegistry.register(state));\n * urlService.listen();\n * // Find the matching URL and invoke the handler.\n * urlService.sync();\n * });\n * ```\n */\n UrlService.prototype.sync = function (evt) {\n if (evt && evt.defaultPrevented)\n return;\n var _a = this.router, urlService = _a.urlService, stateService = _a.stateService;\n var url = { path: urlService.path(), search: urlService.search(), hash: urlService.hash() };\n var best = this.match(url);\n var applyResult = pattern([\n [isString, function (newurl) { return urlService.url(newurl, true); }],\n [TargetState.isDef, function (def) { return stateService.go(def.state, def.params, def.options); }],\n [is(TargetState), function (target) { return stateService.go(target.state(), target.params(), target.options()); }],\n ]);\n applyResult(best && best.rule.handler(best.match, url, this.router));\n };\n /**\n * Starts or stops listening for URL changes\n *\n * Call this sometime after calling [[deferIntercept]] to start monitoring the url.\n * This causes UI-Router to start listening for changes to the URL, if it wasn't already listening.\n *\n * If called with `false`, UI-Router will stop listening (call listen(true) to start listening again).\n *\n * #### Example:\n * ```js\n * urlService.deferIntercept();\n *\n * fetch('/states.json').then(resp => resp.json()).then(data => {\n * data.forEach(state => $stateRegistry.register(state));\n * // Start responding to URL changes\n * urlService.listen();\n * urlService.sync();\n * });\n * ```\n *\n * @param enabled `true` or `false` to start or stop listening to URL changes\n */\n UrlService.prototype.listen = function (enabled) {\n var _this = this;\n if (enabled === false) {\n this._stopListeningFn && this._stopListeningFn();\n delete this._stopListeningFn;\n }\n else {\n return (this._stopListeningFn = this._stopListeningFn || this.router.urlService.onChange(function (evt) { return _this.sync(evt); }));\n }\n };\n /**\n * Disables monitoring of the URL.\n *\n * Call this method before UI-Router has bootstrapped.\n * It will stop UI-Router from performing the initial url sync.\n *\n * This can be useful to perform some asynchronous initialization before the router starts.\n * Once the initialization is complete, call [[listen]] to tell UI-Router to start watching and synchronizing the URL.\n *\n * #### Example:\n * ```js\n * // Prevent UI-Router from automatically intercepting URL changes when it starts;\n * urlService.deferIntercept();\n *\n * fetch('/states.json').then(resp => resp.json()).then(data => {\n * data.forEach(state => $stateRegistry.register(state));\n * urlService.listen();\n * urlService.sync();\n * });\n * ```\n *\n * @param defer Indicates whether to defer location change interception.\n * Passing no parameter is equivalent to `true`.\n */\n UrlService.prototype.deferIntercept = function (defer) {\n if (defer === undefined)\n defer = true;\n this.interceptDeferred = defer;\n };\n /**\n * Matches a URL\n *\n * Given a URL (as a [[UrlParts]] object), check all rules and determine the best matching rule.\n * Return the result as a [[MatchResult]].\n */\n UrlService.prototype.match = function (url) {\n var _this = this;\n url = extend({ path: '', search: {}, hash: '' }, url);\n var rules = this.rules.rules();\n // Checks a single rule. Returns { rule: rule, match: match, weight: weight } if it matched, or undefined\n var checkRule = function (rule) {\n var match = rule.match(url, _this.router);\n return match && { match: match, rule: rule, weight: rule.matchPriority(match) };\n };\n // The rules are pre-sorted.\n // - Find the first matching rule.\n // - Find any other matching rule that sorted *exactly the same*, according to `.sort()`.\n // - Choose the rule with the highest match weight.\n var best;\n for (var i = 0; i < rules.length; i++) {\n // Stop when there is a 'best' rule and the next rule sorts differently than it.\n if (best && best.rule._group !== rules[i]._group)\n break;\n var current = checkRule(rules[i]);\n // Pick the best MatchResult\n best = !best || (current && current.weight > best.weight) ? current : best;\n }\n return best;\n };\n return UrlService;\n}());\nexport { UrlService };\n//# sourceMappingURL=urlService.js.map","/** @internalapi @module vanilla */ /** */\nexport * from './vanilla/index';\n//# sourceMappingURL=vanilla.js.map","/** @internalapi @module vanilla */ /** */\nimport { deregAll, isDefined, removeFrom, root } from '../common';\nimport { buildUrl, getParams, parseUrl } from './utils';\n/** A base `LocationServices` */\nvar BaseLocationServices = /** @class */ (function () {\n function BaseLocationServices(router, fireAfterUpdate) {\n var _this = this;\n this.fireAfterUpdate = fireAfterUpdate;\n this._listeners = [];\n this._listener = function (evt) { return _this._listeners.forEach(function (cb) { return cb(evt); }); };\n this.hash = function () { return parseUrl(_this._get()).hash; };\n this.path = function () { return parseUrl(_this._get()).path; };\n this.search = function () { return getParams(parseUrl(_this._get()).search); };\n this._location = root.location;\n this._history = root.history;\n }\n BaseLocationServices.prototype.url = function (url, replace) {\n if (replace === void 0) { replace = true; }\n if (isDefined(url) && url !== this._get()) {\n this._set(null, null, url, replace);\n if (this.fireAfterUpdate) {\n this._listeners.forEach(function (cb) { return cb({ url: url }); });\n }\n }\n return buildUrl(this);\n };\n BaseLocationServices.prototype.onChange = function (cb) {\n var _this = this;\n this._listeners.push(cb);\n return function () { return removeFrom(_this._listeners, cb); };\n };\n BaseLocationServices.prototype.dispose = function (router) {\n deregAll(this._listeners);\n };\n return BaseLocationServices;\n}());\nexport { BaseLocationServices };\n//# sourceMappingURL=baseLocationService.js.map","/** @internalapi @module vanilla */\n/** */\nimport { isDefined, isUndefined } from '../common/predicates';\n/** A `LocationConfig` that delegates to the browser's `location` object */\nvar BrowserLocationConfig = /** @class */ (function () {\n function BrowserLocationConfig(router, _isHtml5) {\n if (_isHtml5 === void 0) { _isHtml5 = false; }\n this._isHtml5 = _isHtml5;\n this._baseHref = undefined;\n this._hashPrefix = '';\n }\n BrowserLocationConfig.prototype.port = function () {\n if (location.port) {\n return Number(location.port);\n }\n return this.protocol() === 'https' ? 443 : 80;\n };\n BrowserLocationConfig.prototype.protocol = function () {\n return location.protocol.replace(/:/g, '');\n };\n BrowserLocationConfig.prototype.host = function () {\n return location.hostname;\n };\n BrowserLocationConfig.prototype.html5Mode = function () {\n return this._isHtml5;\n };\n BrowserLocationConfig.prototype.hashPrefix = function (newprefix) {\n return isDefined(newprefix) ? (this._hashPrefix = newprefix) : this._hashPrefix;\n };\n BrowserLocationConfig.prototype.baseHref = function (href) {\n if (isDefined(href))\n this._baseHref = href;\n if (isUndefined(this._baseHref))\n this._baseHref = this.getBaseHref();\n return this._baseHref;\n };\n BrowserLocationConfig.prototype.getBaseHref = function () {\n var baseTag = document.getElementsByTagName('base')[0];\n if (baseTag && baseTag.href) {\n return baseTag.href.replace(/^([^/:]*:)?\\/\\/[^/]*/, '');\n }\n return this._isHtml5 ? '/' : location.pathname || '/';\n };\n BrowserLocationConfig.prototype.dispose = function () { };\n return BrowserLocationConfig;\n}());\nexport { BrowserLocationConfig };\n//# sourceMappingURL=browserLocationConfig.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/** @internalapi @module vanilla */ /** */\nimport { root, trimHashVal } from '../common';\nimport { BaseLocationServices } from './baseLocationService';\n/** A `LocationServices` that uses the browser hash \"#\" to get/set the current location */\nvar HashLocationService = /** @class */ (function (_super) {\n __extends(HashLocationService, _super);\n function HashLocationService(router) {\n var _this = _super.call(this, router, false) || this;\n root.addEventListener('hashchange', _this._listener, false);\n return _this;\n }\n HashLocationService.prototype._get = function () {\n return trimHashVal(this._location.hash);\n };\n HashLocationService.prototype._set = function (state, title, url, replace) {\n this._location.hash = url;\n };\n HashLocationService.prototype.dispose = function (router) {\n _super.prototype.dispose.call(this, router);\n root.removeEventListener('hashchange', this._listener);\n };\n return HashLocationService;\n}(BaseLocationServices));\nexport { HashLocationService };\n//# sourceMappingURL=hashLocationService.js.map","export * from './q';\nexport * from './injector';\nexport * from './baseLocationService';\nexport * from './hashLocationService';\nexport * from './memoryLocationService';\nexport * from './pushStateLocationService';\nexport * from './memoryLocationConfig';\nexport * from './browserLocationConfig';\nexport * from './utils';\nexport * from './plugins';\n//# sourceMappingURL=index.js.map","/** @internalapi @module vanilla */ /** */\nimport { extend, assertPredicate, isFunction, isArray, isInjectable, } from '../common/index';\n// globally available injectables\nvar globals = {};\nvar STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/gm;\nvar ARGUMENT_NAMES = /([^\\s,]+)/g;\n/**\n * A basic angular1-like injector api\n *\n * This object implements four methods similar to the\n * [angular 1 dependency injector](https://docs.angularjs.org/api/auto/service/$injector)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This object provides a naive implementation of a globally scoped dependency injection system.\n * It supports the following DI approaches:\n *\n * ### Function parameter names\n *\n * A function's `.toString()` is called, and the parameter names are parsed.\n * This only works when the parameter names aren't \"mangled\" by a minifier such as UglifyJS.\n *\n * ```js\n * function injectedFunction(FooService, BarService) {\n * // FooService and BarService are injected\n * }\n * ```\n *\n * ### Function annotation\n *\n * A function may be annotated with an array of dependency names as the `$inject` property.\n *\n * ```js\n * injectedFunction.$inject = [ 'FooService', 'BarService' ];\n * function injectedFunction(fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }\n * ```\n *\n * ### Array notation\n *\n * An array provides the names of the dependencies to inject (as strings).\n * The function is the last element of the array.\n *\n * ```js\n * [ 'FooService', 'BarService', function (fs, bs) {\n * // FooService and BarService are injected as fs and bs parameters\n * }]\n * ```\n *\n * @type {$InjectorLike}\n */\nexport var $injector = {\n /** Gets an object from DI based on a string token */\n get: function (name) { return globals[name]; },\n /** Returns true if an object named `name` exists in global DI */\n has: function (name) { return $injector.get(name) != null; },\n /**\n * Injects a function\n *\n * @param fn the function to inject\n * @param context the function's `this` binding\n * @param locals An object with additional DI tokens and values, such as `{ someToken: { foo: 1 } }`\n */\n invoke: function (fn, context, locals) {\n var all = extend({}, globals, locals || {});\n var params = $injector.annotate(fn);\n var ensureExist = assertPredicate(function (key) { return all.hasOwnProperty(key); }, function (key) { return \"DI can't find injectable: '\" + key + \"'\"; });\n var args = params.filter(ensureExist).map(function (x) { return all[x]; });\n if (isFunction(fn))\n return fn.apply(context, args);\n else\n return fn.slice(-1)[0].apply(context, args);\n },\n /**\n * Returns a function's dependencies\n *\n * Analyzes a function (or array) and returns an array of DI tokens that the function requires.\n * @return an array of `string`s\n */\n annotate: function (fn) {\n if (!isInjectable(fn))\n throw new Error(\"Not an injectable function: \" + fn);\n if (fn && fn.$inject)\n return fn.$inject;\n if (isArray(fn))\n return fn.slice(0, -1);\n var fnStr = fn.toString().replace(STRIP_COMMENTS, '');\n var result = fnStr.slice(fnStr.indexOf('(') + 1, fnStr.indexOf(')')).match(ARGUMENT_NAMES);\n return result || [];\n },\n};\n//# sourceMappingURL=injector.js.map","import { isDefined } from '../common/predicates';\nimport { noop } from '../common/common';\n/** A `LocationConfig` mock that gets/sets all config from an in-memory object */\nvar MemoryLocationConfig = /** @class */ (function () {\n function MemoryLocationConfig() {\n var _this = this;\n this.dispose = noop;\n this._baseHref = '';\n this._port = 80;\n this._protocol = 'http';\n this._host = 'localhost';\n this._hashPrefix = '';\n this.port = function () { return _this._port; };\n this.protocol = function () { return _this._protocol; };\n this.host = function () { return _this._host; };\n this.baseHref = function () { return _this._baseHref; };\n this.html5Mode = function () { return false; };\n this.hashPrefix = function (newval) { return (isDefined(newval) ? (_this._hashPrefix = newval) : _this._hashPrefix); };\n }\n return MemoryLocationConfig;\n}());\nexport { MemoryLocationConfig };\n//# sourceMappingURL=memoryLocationConfig.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/** @internalapi @module vanilla */ /** */\nimport { BaseLocationServices } from './baseLocationService';\n/** A `LocationServices` that gets/sets the current location from an in-memory object */\nvar MemoryLocationService = /** @class */ (function (_super) {\n __extends(MemoryLocationService, _super);\n function MemoryLocationService(router) {\n return _super.call(this, router, true) || this;\n }\n MemoryLocationService.prototype._get = function () {\n return this._url;\n };\n MemoryLocationService.prototype._set = function (state, title, url, replace) {\n this._url = url;\n };\n return MemoryLocationService;\n}(BaseLocationServices));\nexport { MemoryLocationService };\n//# sourceMappingURL=memoryLocationService.js.map","/** @internalapi @module vanilla */ /** */\nimport { BrowserLocationConfig } from './browserLocationConfig';\nimport { HashLocationService } from './hashLocationService';\nimport { locationPluginFactory } from './utils';\nimport { PushStateLocationService } from './pushStateLocationService';\nimport { MemoryLocationService } from './memoryLocationService';\nimport { MemoryLocationConfig } from './memoryLocationConfig';\nimport { $injector } from './injector';\nimport { $q } from './q';\nimport { services } from '../common/coreservices';\nexport function servicesPlugin(router) {\n services.$injector = $injector;\n services.$q = $q;\n return { name: 'vanilla.services', $q: $q, $injector: $injector, dispose: function () { return null; } };\n}\n/** A `UIRouterPlugin` uses the browser hash to get/set the current location */\nexport var hashLocationPlugin = locationPluginFactory('vanilla.hashBangLocation', false, HashLocationService, BrowserLocationConfig);\n/** A `UIRouterPlugin` that gets/sets the current location using the browser's `location` and `history` apis */\nexport var pushStateLocationPlugin = locationPluginFactory('vanilla.pushStateLocation', true, PushStateLocationService, BrowserLocationConfig);\n/** A `UIRouterPlugin` that gets/sets the current location from an in-memory object */\nexport var memoryLocationPlugin = locationPluginFactory('vanilla.memoryLocation', false, MemoryLocationService, MemoryLocationConfig);\n//# sourceMappingURL=plugins.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { BaseLocationServices } from './baseLocationService';\nimport { root, splitHash, splitQuery, stripLastPathElement } from '../common';\n/**\n * A `LocationServices` that gets/sets the current location using the browser's `location` and `history` apis\n *\n * Uses `history.pushState` and `history.replaceState`\n */\nvar PushStateLocationService = /** @class */ (function (_super) {\n __extends(PushStateLocationService, _super);\n function PushStateLocationService(router) {\n var _this = _super.call(this, router, true) || this;\n _this._config = router.urlService.config;\n root.addEventListener('popstate', _this._listener, false);\n return _this;\n }\n /**\n * Gets the base prefix without:\n * - trailing slash\n * - trailing filename\n * - protocol and hostname\n *\n * If , this returns '/base'.\n * If , this returns '/foo/base'.\n * If , this returns '/base'.\n * If , this returns '/base'.\n * If , this returns ''.\n * If , this returns ''.\n * If , this returns ''.\n *\n * See: https://html.spec.whatwg.org/dev/semantics.html#the-base-element\n */\n PushStateLocationService.prototype._getBasePrefix = function () {\n return stripLastPathElement(this._config.baseHref());\n };\n PushStateLocationService.prototype._get = function () {\n var _a = this._location, pathname = _a.pathname, hash = _a.hash, search = _a.search;\n search = splitQuery(search)[1]; // strip ? if found\n hash = splitHash(hash)[1]; // strip # if found\n var basePrefix = this._getBasePrefix();\n var exactBaseHrefMatch = pathname === this._config.baseHref();\n var startsWithBase = pathname.substr(0, basePrefix.length) === basePrefix;\n pathname = exactBaseHrefMatch ? '/' : startsWithBase ? pathname.substring(basePrefix.length) : pathname;\n return pathname + (search ? '?' + search : '') + (hash ? '#' + hash : '');\n };\n PushStateLocationService.prototype._set = function (state, title, url, replace) {\n var basePrefix = this._getBasePrefix();\n var slash = url && url[0] !== '/' ? '/' : '';\n var fullUrl = url === '' || url === '/' ? this._config.baseHref() : basePrefix + slash + url;\n if (replace) {\n this._history.replaceState(state, title, fullUrl);\n }\n else {\n this._history.pushState(state, title, fullUrl);\n }\n };\n PushStateLocationService.prototype.dispose = function (router) {\n _super.prototype.dispose.call(this, router);\n root.removeEventListener('popstate', this._listener);\n };\n return PushStateLocationService;\n}(BaseLocationServices));\nexport { PushStateLocationService };\n//# sourceMappingURL=pushStateLocationService.js.map","/** @internalapi @module vanilla */ /** */\nimport { isArray, isObject } from '../common/index';\n/**\n * An angular1-like promise api\n *\n * This object implements four methods similar to the\n * [angular 1 promise api](https://docs.angularjs.org/api/ng/service/$q)\n *\n * UI-Router evolved from an angular 1 library to a framework agnostic library.\n * However, some of the `@uirouter/core` code uses these ng1 style APIs to support ng1 style dependency injection.\n *\n * This API provides native ES6 promise support wrapped as a $q-like API.\n * Internally, UI-Router uses this $q object to perform promise operations.\n * The `angular-ui-router` (ui-router for angular 1) uses the $q API provided by angular.\n *\n * $q-like promise api\n */\nexport var $q = {\n /** Normalizes a value as a promise */\n when: function (val) { return new Promise(function (resolve, reject) { return resolve(val); }); },\n /** Normalizes a value as a promise rejection */\n reject: function (val) {\n return new Promise(function (resolve, reject) {\n reject(val);\n });\n },\n /** @returns a deferred object, which has `resolve` and `reject` functions */\n defer: function () {\n var deferred = {};\n deferred.promise = new Promise(function (resolve, reject) {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n },\n /** Like Promise.all(), but also supports object key/promise notation like $q */\n all: function (promises) {\n if (isArray(promises)) {\n return Promise.all(promises);\n }\n if (isObject(promises)) {\n // Convert promises map to promises array.\n // When each promise resolves, map it to a tuple { key: key, val: val }\n var chain = Object.keys(promises).map(function (key) { return promises[key].then(function (val) { return ({ key: key, val: val }); }); });\n // Then wait for all promises to resolve, and convert them back to an object\n return $q.all(chain).then(function (values) {\n return values.reduce(function (acc, tuple) {\n acc[tuple.key] = tuple.val;\n return acc;\n }, {});\n });\n }\n },\n};\n//# sourceMappingURL=q.js.map","/** @internalapi @module vanilla */ /** */\nimport { identity, unnestR, isArray, splitEqual, splitHash, splitQuery, } from '../common';\nexport var keyValsToObjectR = function (accum, _a) {\n var key = _a[0], val = _a[1];\n if (!accum.hasOwnProperty(key)) {\n accum[key] = val;\n }\n else if (isArray(accum[key])) {\n accum[key].push(val);\n }\n else {\n accum[key] = [accum[key], val];\n }\n return accum;\n};\nexport var getParams = function (queryString) {\n return queryString\n .split('&')\n .filter(identity)\n .map(splitEqual)\n .reduce(keyValsToObjectR, {});\n};\nexport function parseUrl(url) {\n var orEmptyString = function (x) { return x || ''; };\n var _a = splitHash(url).map(orEmptyString), beforehash = _a[0], hash = _a[1];\n var _b = splitQuery(beforehash).map(orEmptyString), path = _b[0], search = _b[1];\n return { path: path, search: search, hash: hash, url: url };\n}\nexport var buildUrl = function (loc) {\n var path = loc.path();\n var searchObject = loc.search();\n var hash = loc.hash();\n var search = Object.keys(searchObject)\n .map(function (key) {\n var param = searchObject[key];\n var vals = isArray(param) ? param : [param];\n return vals.map(function (val) { return key + '=' + val; });\n })\n .reduce(unnestR, [])\n .join('&');\n return path + (search ? '?' + search : '') + (hash ? '#' + hash : '');\n};\nexport function locationPluginFactory(name, isHtml5, serviceClass, configurationClass) {\n return function (uiRouter) {\n var service = (uiRouter.locationService = new serviceClass(uiRouter));\n var configuration = (uiRouter.locationConfig = new configurationClass(uiRouter, isHtml5));\n function dispose(router) {\n router.dispose(service);\n router.dispose(configuration);\n }\n return { name: name, service: service, configuration: configuration, dispose: dispose };\n };\n}\n//# sourceMappingURL=utils.js.map","export * from './view';\n//# sourceMappingURL=index.js.map","/** @publicapi @module view */ /** */\nimport { equals, applyPairs, removeFrom, inArray, find } from '../common/common';\nimport { curry, prop } from '../common/hof';\nimport { isString, isArray } from '../common/predicates';\nimport { trace } from '../common/trace';\n/**\n * The View service\n *\n * This service pairs existing `ui-view` components (which live in the DOM)\n * with view configs (from the state declaration objects: [[StateDeclaration.views]]).\n *\n * - After a successful Transition, the views from the newly entered states are activated via [[activateViewConfig]].\n * The views from exited states are deactivated via [[deactivateViewConfig]].\n * (See: the [[registerActivateViews]] Transition Hook)\n *\n * - As `ui-view` components pop in and out of existence, they register themselves using [[registerUIView]].\n *\n * - When the [[sync]] function is called, the registered `ui-view`(s) ([[ActiveUIView]])\n * are configured with the matching [[ViewConfig]](s)\n *\n */\nvar ViewService = /** @class */ (function () {\n /** @hidden */\n function ViewService(/** @hidden */ router) {\n var _this = this;\n this.router = router;\n /** @hidden */ this._uiViews = [];\n /** @hidden */ this._viewConfigs = [];\n /** @hidden */ this._viewConfigFactories = {};\n /** @hidden */ this._listeners = [];\n /** @internalapi */\n this._pluginapi = {\n _rootViewContext: this._rootViewContext.bind(this),\n _viewConfigFactory: this._viewConfigFactory.bind(this),\n _registeredUIView: function (id) { return find(_this._uiViews, function (view) { return _this.router.$id + \".\" + view.id === id; }); },\n _registeredUIViews: function () { return _this._uiViews; },\n _activeViewConfigs: function () { return _this._viewConfigs; },\n _onSync: function (listener) {\n _this._listeners.push(listener);\n return function () { return removeFrom(_this._listeners, listener); };\n },\n };\n }\n /**\n * Normalizes a view's name from a state.views configuration block.\n *\n * This should be used by a framework implementation to calculate the values for\n * [[_ViewDeclaration.$uiViewName]] and [[_ViewDeclaration.$uiViewContextAnchor]].\n *\n * @param context the context object (state declaration) that the view belongs to\n * @param rawViewName the name of the view, as declared in the [[StateDeclaration.views]]\n *\n * @returns the normalized uiViewName and uiViewContextAnchor that the view targets\n */\n ViewService.normalizeUIViewTarget = function (context, rawViewName) {\n if (rawViewName === void 0) { rawViewName = ''; }\n // TODO: Validate incoming view name with a regexp to allow:\n // ex: \"view.name@foo.bar\" , \"^.^.view.name\" , \"view.name@^.^\" , \"\" ,\n // \"@\" , \"$default@^\" , \"!$default.$default\" , \"!foo.bar\"\n var viewAtContext = rawViewName.split('@');\n var uiViewName = viewAtContext[0] || '$default'; // default to unnamed view\n var uiViewContextAnchor = isString(viewAtContext[1]) ? viewAtContext[1] : '^'; // default to parent context\n // Handle relative view-name sugar syntax.\n // Matches rawViewName \"^.^.^.foo.bar\" into array: [\"^.^.^.foo.bar\", \"^.^.^\", \"foo.bar\"],\n var relativeViewNameSugar = /^(\\^(?:\\.\\^)*)\\.(.*$)/.exec(uiViewName);\n if (relativeViewNameSugar) {\n // Clobbers existing contextAnchor (rawViewName validation will fix this)\n uiViewContextAnchor = relativeViewNameSugar[1]; // set anchor to \"^.^.^\"\n uiViewName = relativeViewNameSugar[2]; // set view-name to \"foo.bar\"\n }\n if (uiViewName.charAt(0) === '!') {\n uiViewName = uiViewName.substr(1);\n uiViewContextAnchor = ''; // target absolutely from root\n }\n // handle parent relative targeting \"^.^.^\"\n var relativeMatch = /^(\\^(?:\\.\\^)*)$/;\n if (relativeMatch.exec(uiViewContextAnchor)) {\n var anchorState = uiViewContextAnchor.split('.').reduce(function (anchor, x) { return anchor.parent; }, context);\n uiViewContextAnchor = anchorState.name;\n }\n else if (uiViewContextAnchor === '.') {\n uiViewContextAnchor = context.name;\n }\n return { uiViewName: uiViewName, uiViewContextAnchor: uiViewContextAnchor };\n };\n /** @hidden */\n ViewService.prototype._rootViewContext = function (context) {\n return (this._rootContext = context || this._rootContext);\n };\n /** @hidden */\n ViewService.prototype._viewConfigFactory = function (viewType, factory) {\n this._viewConfigFactories[viewType] = factory;\n };\n ViewService.prototype.createViewConfig = function (path, decl) {\n var cfgFactory = this._viewConfigFactories[decl.$type];\n if (!cfgFactory)\n throw new Error('ViewService: No view config factory registered for type ' + decl.$type);\n var cfgs = cfgFactory(path, decl);\n return isArray(cfgs) ? cfgs : [cfgs];\n };\n /**\n * Deactivates a ViewConfig.\n *\n * This function deactivates a `ViewConfig`.\n * After calling [[sync]], it will un-pair from any `ui-view` with which it is currently paired.\n *\n * @param viewConfig The ViewConfig view to deregister.\n */\n ViewService.prototype.deactivateViewConfig = function (viewConfig) {\n trace.traceViewServiceEvent('<- Removing', viewConfig);\n removeFrom(this._viewConfigs, viewConfig);\n };\n ViewService.prototype.activateViewConfig = function (viewConfig) {\n trace.traceViewServiceEvent('-> Registering', viewConfig);\n this._viewConfigs.push(viewConfig);\n };\n ViewService.prototype.sync = function () {\n var _this = this;\n var uiViewsByFqn = this._uiViews.map(function (uiv) { return [uiv.fqn, uiv]; }).reduce(applyPairs, {});\n // Return a weighted depth value for a uiView.\n // The depth is the nesting depth of ui-views (based on FQN; times 10,000)\n // plus the depth of the state that is populating the uiView\n function uiViewDepth(uiView) {\n var stateDepth = function (context) { return (context && context.parent ? stateDepth(context.parent) + 1 : 1); };\n return uiView.fqn.split('.').length * 10000 + stateDepth(uiView.creationContext);\n }\n // Return the ViewConfig's context's depth in the context tree.\n function viewConfigDepth(config) {\n var context = config.viewDecl.$context, count = 0;\n while (++count && context.parent)\n context = context.parent;\n return count;\n }\n // Given a depth function, returns a compare function which can return either ascending or descending order\n var depthCompare = curry(function (depthFn, posNeg, left, right) { return posNeg * (depthFn(left) - depthFn(right)); });\n var matchingConfigPair = function (uiView) {\n var matchingConfigs = _this._viewConfigs.filter(ViewService.matches(uiViewsByFqn, uiView));\n if (matchingConfigs.length > 1) {\n // This is OK. Child states can target a ui-view that the parent state also targets (the child wins)\n // Sort by depth and return the match from the deepest child\n // console.log(`Multiple matching view configs for ${uiView.fqn}`, matchingConfigs);\n matchingConfigs.sort(depthCompare(viewConfigDepth, -1)); // descending\n }\n return { uiView: uiView, viewConfig: matchingConfigs[0] };\n };\n var configureUIView = function (tuple) {\n // If a parent ui-view is reconfigured, it could destroy child ui-views.\n // Before configuring a child ui-view, make sure it's still in the active uiViews array.\n if (_this._uiViews.indexOf(tuple.uiView) !== -1)\n tuple.uiView.configUpdated(tuple.viewConfig);\n };\n // Sort views by FQN and state depth. Process uiviews nearest the root first.\n var uiViewTuples = this._uiViews.sort(depthCompare(uiViewDepth, 1)).map(matchingConfigPair);\n var matchedViewConfigs = uiViewTuples.map(function (tuple) { return tuple.viewConfig; });\n var unmatchedConfigTuples = this._viewConfigs\n .filter(function (config) { return !inArray(matchedViewConfigs, config); })\n .map(function (viewConfig) { return ({ uiView: undefined, viewConfig: viewConfig }); });\n uiViewTuples.forEach(configureUIView);\n var allTuples = uiViewTuples.concat(unmatchedConfigTuples);\n this._listeners.forEach(function (cb) { return cb(allTuples); });\n trace.traceViewSync(allTuples);\n };\n /**\n * Registers a `ui-view` component\n *\n * When a `ui-view` component is created, it uses this method to register itself.\n * After registration the [[sync]] method is used to ensure all `ui-view` are configured with the proper [[ViewConfig]].\n *\n * Note: the `ui-view` component uses the `ViewConfig` to determine what view should be loaded inside the `ui-view`,\n * and what the view's state context is.\n *\n * Note: There is no corresponding `deregisterUIView`.\n * A `ui-view` should hang on to the return value of `registerUIView` and invoke it to deregister itself.\n *\n * @param uiView The metadata for a UIView\n * @return a de-registration function used when the view is destroyed.\n */\n ViewService.prototype.registerUIView = function (uiView) {\n trace.traceViewServiceUIViewEvent('-> Registering', uiView);\n var uiViews = this._uiViews;\n var fqnAndTypeMatches = function (uiv) { return uiv.fqn === uiView.fqn && uiv.$type === uiView.$type; };\n if (uiViews.filter(fqnAndTypeMatches).length)\n trace.traceViewServiceUIViewEvent('!!!! duplicate uiView named:', uiView);\n uiViews.push(uiView);\n this.sync();\n return function () {\n var idx = uiViews.indexOf(uiView);\n if (idx === -1) {\n trace.traceViewServiceUIViewEvent('Tried removing non-registered uiView', uiView);\n return;\n }\n trace.traceViewServiceUIViewEvent('<- Deregistering', uiView);\n removeFrom(uiViews)(uiView);\n };\n };\n /**\n * Returns the list of views currently available on the page, by fully-qualified name.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n ViewService.prototype.available = function () {\n return this._uiViews.map(prop('fqn'));\n };\n /**\n * Returns the list of views on the page containing loaded content.\n *\n * @return {Array} Returns an array of fully-qualified view names.\n */\n ViewService.prototype.active = function () {\n return this._uiViews.filter(prop('$config')).map(prop('name'));\n };\n /**\n * Given a ui-view and a ViewConfig, determines if they \"match\".\n *\n * A ui-view has a fully qualified name (fqn) and a context object. The fqn is built from its overall location in\n * the DOM, describing its nesting relationship to any parent ui-view tags it is nested inside of.\n *\n * A ViewConfig has a target ui-view name and a context anchor. The ui-view name can be a simple name, or\n * can be a segmented ui-view path, describing a portion of a ui-view fqn.\n *\n * In order for a ui-view to match ViewConfig, ui-view's $type must match the ViewConfig's $type\n *\n * If the ViewConfig's target ui-view name is a simple name (no dots), then a ui-view matches if:\n * - the ui-view's name matches the ViewConfig's target name\n * - the ui-view's context matches the ViewConfig's anchor\n *\n * If the ViewConfig's target ui-view name is a segmented name (with dots), then a ui-view matches if:\n * - There exists a parent ui-view where:\n * - the parent ui-view's name matches the first segment (index 0) of the ViewConfig's target name\n * - the parent ui-view's context matches the ViewConfig's anchor\n * - And the remaining segments (index 1..n) of the ViewConfig's target name match the tail of the ui-view's fqn\n *\n * Example:\n *\n * DOM:\n * \n * \n * \n * \n * \n * \n * \n * \n *\n * uiViews: [\n * { fqn: \"$default\", creationContext: { name: \"\" } },\n * { fqn: \"$default.foo\", creationContext: { name: \"A\" } },\n * { fqn: \"$default.foo.$default\", creationContext: { name: \"A.B\" } }\n * { fqn: \"$default.foo.$default.bar\", creationContext: { name: \"A.B.C\" } }\n * ]\n *\n * These four view configs all match the ui-view with the fqn: \"$default.foo.$default.bar\":\n *\n * - ViewConfig1: { uiViewName: \"bar\", uiViewContextAnchor: \"A.B.C\" }\n * - ViewConfig2: { uiViewName: \"$default.bar\", uiViewContextAnchor: \"A.B\" }\n * - ViewConfig3: { uiViewName: \"foo.$default.bar\", uiViewContextAnchor: \"A\" }\n * - ViewConfig4: { uiViewName: \"$default.foo.$default.bar\", uiViewContextAnchor: \"\" }\n *\n * Using ViewConfig3 as an example, it matches the ui-view with fqn \"$default.foo.$default.bar\" because:\n * - The ViewConfig's segmented target name is: [ \"foo\", \"$default\", \"bar\" ]\n * - There exists a parent ui-view (which has fqn: \"$default.foo\") where:\n * - the parent ui-view's name \"foo\" matches the first segment \"foo\" of the ViewConfig's target name\n * - the parent ui-view's context \"A\" matches the ViewConfig's anchor context \"A\"\n * - And the remaining segments [ \"$default\", \"bar\" ].join(\".\"_ of the ViewConfig's target name match\n * the tail of the ui-view's fqn \"default.bar\"\n *\n * @internalapi\n */\n ViewService.matches = function (uiViewsByFqn, uiView) { return function (viewConfig) {\n // Don't supply an ng1 ui-view with an ng2 ViewConfig, etc\n if (uiView.$type !== viewConfig.viewDecl.$type)\n return false;\n // Split names apart from both viewConfig and uiView into segments\n var vc = viewConfig.viewDecl;\n var vcSegments = vc.$uiViewName.split('.');\n var uivSegments = uiView.fqn.split('.');\n // Check if the tails of the segment arrays match. ex, these arrays' tails match:\n // vc: [\"foo\", \"bar\"], uiv fqn: [\"$default\", \"foo\", \"bar\"]\n if (!equals(vcSegments, uivSegments.slice(0 - vcSegments.length)))\n return false;\n // Now check if the fqn ending at the first segment of the viewConfig matches the context:\n // [\"$default\", \"foo\"].join(\".\") == \"$default.foo\", does the ui-view $default.foo context match?\n var negOffset = 1 - vcSegments.length || undefined;\n var fqnToFirstSegment = uivSegments.slice(0, negOffset).join('.');\n var uiViewContext = uiViewsByFqn[fqnToFirstSegment].creationContext;\n return vc.$uiViewContextAnchor === (uiViewContext && uiViewContext.name);\n }; };\n return ViewService;\n}());\nexport { ViewService };\n//# sourceMappingURL=view.js.map","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","\"use strict\";\r\nexports.__esModule = true;\r\nvar Fxp = window['Fxp'] || {};\r\nvar fxpComponentRegistrationService = null;\r\nvar partnerAppRegistrationService = null;\r\nvar adminLandingService = null;\r\nvar dashboardService = null;\r\nvar fxpAuthorizationService = null;\r\nvar fxpBreadcrumbService = null;\r\nvar userProfileService = null;\r\nvar userClaimsService = null;\r\nvar adalLoginHelperService = null;\r\nvar fxpMessageService = null;\r\nvar notificationStore = null;\r\nvar fxpConfigurationService = null;\r\nvar fxpFeedbackService = null;\r\nvar fxpRouteService = null;\r\nvar fxpStorageService = null;\r\nvar fxpToastNotificationService = null;\r\nvar helpCentralService = null;\r\nvar notificationActionCenter = null;\r\nvar notificationService = null;\r\nvar oBOUserService = null;\r\nvar pageLoaderService = null;\r\nvar pageTourEventService = null;\r\nvar personalizationService = null;\r\nvar plannedDownTimeService = null;\r\nvar systemMessagesService = null;\r\nvar timeZoneHelper = null;\r\nvar userInfoService = null;\r\nvar fxpBotService = null;\r\nvar fxpBotServiceProvider = null;\r\n\r\nvar businessProcessEvent = null;\r\nvar featureUsageEvent = null;\r\nvar systemEvent = null;\r\nvar componentType = null;\r\nvar environmentData = null;\r\nvar eventData = null;\r\nvar eventTypes = null;\r\nvar environment = null;\r\nvar fxpBroadcastedEvents = null;\r\nvar fxpLoggerService = null;\r\nvar fxpLoggerServiceExtension = null;\r\nvar telemetryConfiguration = null;\r\nvar userInfo = null;\r\nvar telemetryContext = null;\r\nvar fxpLoggingStrategyFactory = null;\r\nvar fxpOnlineLoggingStrategy = null;\r\nvar fxpHttpService = null;\r\nvar authorNotificationConstant = null;\r\nvar createAskOpsModalConstant = null;\r\nvar helpArticleImageModalConstant = null;\r\nvar sessionTimeoutModalConstant = null;\r\nvar SYSTEM_MESSAGE_UI = null;\r\nvar fxpEventBroadCastService = null;\r\nvar fxpIrisBotService = null;\r\nvar confitService = null;\r\nvar featureFlagService = null;\r\nvar fxpUIData = null;\r\nvar deviceFactoryProvider = null;\r\nvar fxpConstants = null;\r\nvar settingsServiceProvider = null;\r\nvar fxpContext = null;\r\nvar fxpPartnerHttpInterceptorHooks = null;\r\nvar fxpGlobalStoreService = null;\r\nvar fxpOCVFeedbackService = null\r\nvar fxpSignalRService = null;\r\nvar errorSeverityLevel = null;\r\nvar fxpTelemActionType = null;\r\nvar fxpTelemEventName = null;\r\nvar fxpTelemActionStatus = null;\r\nvar commonUtils = null;\r\nvar componentFramework = null; \r\n\r\nif (Fxp && Fxp.Utils && Fxp.Utils.Services) {\r\n deviceFactoryProvider = Fxp.Utils.DeviceFactoryProvider;\r\n adalLoginHelperService = Fxp.Utils.Services.AdalLoginHelperService;\r\n commonUtils = Fxp.Utils.CommonUtils; \r\n}\r\nif(Fxp && Fxp.Factory){\r\n fxpUIData = Fxp.Factory.FxpUIData;\r\n}\r\nif(Fxp && Fxp.Common){\r\n fxpConstants = Fxp.Common.Constants.FxpConstants;\r\n environment = Fxp.Common.Environment;\r\n componentFramework = Fxp.Common.ComponentFramework;\r\n}\r\n\r\nif (Fxp && Fxp.Services) {\r\n fxpComponentRegistrationService = Fxp.Services.FxpComponentRegistrationService;\r\n partnerAppRegistrationService = Fxp.Services.PartnerAppRegistrationService;\r\n userProfileService = Fxp.Services.UserProfileService;\r\n userClaimsService = Fxp.Services.UserClaimsService;\r\n fxpMessageService = Fxp.Services.FxpMessageService;\r\n fxpEventBroadCastService = Fxp.Services.FxpEventBroadCastService;\r\n\tfxpIrisBotService = Fxp.Services.FxpIrisBotService;\r\n fxpHttpService = Fxp.Services.FxpHttpService;\r\n notificationStore = Fxp.Services.NotificationStore;\r\n adminLandingService = Fxp.Services.AdminLandingService;\r\n dashboardService = Fxp.Services.DashboardService;\r\n fxpAuthorizationService = Fxp.Services.FxpAuthorizationService;\r\n fxpBreadcrumbService = Fxp.Services.FxpBreadcrumbService;\r\n fxpConfigurationService = Fxp.Services.FxpConfigurationService;\r\n fxpFeedbackService = Fxp.Services.FxpFeedbackService;\r\n fxpRouteService = Fxp.Services.FxpRouteService;\r\n fxpStorageService = Fxp.Services.FxpStorageService;\r\n fxpToastNotificationService = Fxp.Services.FxpToastNotificationService;\r\n helpCentralService = Fxp.Services.HelpCentralService;\r\n notificationActionCenter = Fxp.Services.NotificationActionCenter;\r\n notificationService = Fxp.Services.NotificationService;\r\n oBOUserService = Fxp.Services.OBOUserService;\r\n pageLoaderService = Fxp.Services.PageLoaderService;\r\n pageTourEventService = Fxp.Services.PageTourEventServiceAlias;\r\n personalizationService = Fxp.Services.PersonalizationService;\r\n plannedDownTimeService = Fxp.Services.PlannedDownTimeService;\r\n systemMessagesService = Fxp.Services.SystemMessagesService;\r\n timeZoneHelper = Fxp.Services.TimeZoneHelper;\r\n userInfoService = Fxp.Services.UserInfoService;\r\n fxpBotService = Fxp.Services.FxpBotService;\r\n fxpBotServiceProvider = Fxp.Services.FxpBotServiceProvider;\r\n settingsServiceProvider = Fxp.Services.SettingsServiceProvider;\r\n\r\n businessProcessEvent = Fxp.Telemetry.BusinessProcessEvent;\r\n featureUsageEvent = Fxp.Telemetry.FeatureUsageEvent;\r\n systemEvent = Fxp.Telemetry.SystemEvent;\r\n componentType = Fxp.Telemetry.ComponentType;\r\n errorSeverityLevel = Fxp.Telemetry.ErrorSeverityLevel;\r\n fxpTelemActionType = Fxp.Telemetry.FxpTelemActionType;\r\n fxpTelemEventName = Fxp.Telemetry.FxpTelemEventName;\r\n fxpTelemActionStatus = Fxp.Telemetry.FxpTelemActionStatus;\r\n environmentData = Fxp.Telemetry.EnvironmentData;\r\n eventData = Fxp.Telemetry.EventData;\r\n eventTypes = Fxp.Telemetry.EventTypes;\r\n fxpBroadcastedEvents = Fxp.Services.FxpBroadcastedEvents;\r\n fxpLoggerService = Fxp.Telemetry.FxpLoggerService;\r\n fxpLoggerServiceExtension = Fxp.Telemetry.FxpLoggerServiceExtension;\r\n telemetryConfiguration = Fxp.Telemetry.TelemetryConfiguration;\r\n userInfo = Fxp.Telemetry.UserInfo;\r\n telemetryContext = Fxp.Telemetry.TelemetryContext;\r\n fxpLoggingStrategyFactory = Fxp.Telemetry.FxpLoggingStrategyFactory;\r\n fxpOnlineLoggingStrategy = Fxp.Telemetry.FxpOnlineLoggingStrategy;\r\n authorNotificationConstant = Fxp.Constants.AuthorNotificationConstant;\r\n createAskOpsModalConstant = Fxp.Constants.createAskOpsModalConstant;\r\n helpArticleImageModalConstant = Fxp.Constants.HelpArticleImageModalConstant;\r\n sessionTimeoutModalConstant = Fxp.Constants.SessionTimeoutModalConstant;\r\n SYSTEM_MESSAGE_UI = Fxp.Constants.SYSTEM_MESSAGE_UI;\r\n confitService = Fxp.Services.ConFitService;\r\n featureFlagService = Fxp.Services.FeatureFlagService;\r\n fxpPartnerHttpInterceptorHooks = Fxp.Services.FxpPartnerHttpInterceptorHooks;\r\n fxpGlobalStoreService = Fxp.Services.FxpGlobalStoreService;\r\n fxpOCVFeedbackService = Fxp.Services.FxpOCVFeedbackService;\r\n fxpSignalRService = Fxp.Services.FxpSignalRService;\r\n\r\n}\r\nif (Fxp && Fxp.Context){\r\n fxpContext = Fxp.Context.FxpContext;\r\n}\r\nexports.Fxp = Fxp;\r\nexports.AuthorNotificationConstant = authorNotificationConstant;\r\nexports.CreateAskOpsModalConstant = createAskOpsModalConstant;\r\nexports.HelpArticleImageModalConstant = helpArticleImageModalConstant;\r\nexports.SessionTimeoutModalConstant = sessionTimeoutModalConstant;\r\nexports.SYSTEM_MESSAGE_UI = SYSTEM_MESSAGE_UI;\r\nexports.FxpComponentRegistrationService = fxpComponentRegistrationService;\r\nexports.PartnerAppRegistrationService = partnerAppRegistrationService;\r\nexports.UserProfileService = userProfileService;\r\nexports.UserClaimsService = userClaimsService;\r\nexports.FxpMessageService = fxpMessageService;\r\nexports.FxpBroadcastedEvents = fxpBroadcastedEvents;\r\nexports.FxpEventBroadCastService = fxpEventBroadCastService;\r\nexports.FxpIrisBotService = fxpIrisBotService;\r\nexports.FxpHttpService = fxpHttpService;\r\nexports.NotificationStore = notificationStore;\r\nexports.AdalLoginHelperService = adalLoginHelperService;\r\nexports.AdminLandingService = adminLandingService;\r\nexports.DashboardService = dashboardService;\r\nexports.FxpAuthorizationService = fxpAuthorizationService;\r\nexports.FxpBreadcrumbService = fxpBreadcrumbService;\r\nexports.FxpConfigurationService = fxpConfigurationService;\r\nexports.FxpFeedbackService = fxpFeedbackService;\r\nexports.FxpRouteService = fxpRouteService;\r\nexports.FxpStorageService = fxpStorageService;\r\nexports.FxpToastNotificationService = fxpToastNotificationService;\r\nexports.HelpCentralService = helpCentralService;\r\nexports.NotificationActionCenter = notificationActionCenter;\r\nexports.NotificationService = notificationService;\r\nexports.OBOUserService = oBOUserService;\r\nexports.PageLoaderService = pageLoaderService;\r\nexports.pageTourEventService = pageTourEventService;\r\nexports.PersonalizationService = personalizationService;\r\nexports.PlannedDownTimeService = plannedDownTimeService;\r\nexports.SystemMessagesService = systemMessagesService;\r\nexports.TimeZoneHelper = timeZoneHelper;\r\nexports.UserInfoService = userInfoService;\r\nexports.FxpBotService = fxpBotService;\r\nexports.FxpBotServiceProvider = fxpBotServiceProvider;\r\nexports.BusinessProcessEvent = businessProcessEvent;\r\nexports.FeatureUsageEvent = featureUsageEvent;\r\nexports.SystemEvent = systemEvent;\r\nexports.ComponentType = componentType;\r\nexports.ErrorSeverityLevel = errorSeverityLevel;\r\nexports.FxpTelemActionType = fxpTelemActionType;\r\nexports.FxpTelemEventName = fxpTelemEventName;\r\nexports.FxpTelemActionStatus = fxpTelemActionStatus;\r\nexports.EnvironmentData = environmentData;\r\nexports.EventData = eventData;\r\nexports.EventTypes = eventTypes;\r\nexports.FxpLoggerService = fxpLoggerService;\r\nexports.FxpLoggerServiceExtension = fxpLoggerServiceExtension;\r\nexports.TelemetryConfiguration = telemetryConfiguration;\r\nexports.UserInfo = userInfo;\r\nexports.TelemetryContext = telemetryContext;\r\nexports.FxpLoggingStrategyFactory = fxpLoggingStrategyFactory;\r\nexports.FxpOnlineLoggingStrategy = fxpOnlineLoggingStrategy;\r\nexports.ConFitService = confitService;\r\nexports.FeatureFlagService = featureFlagService;\r\nexports.FxpUIData = fxpUIData;\r\nexports.DeviceFactoryProvider = deviceFactoryProvider;\r\nexports.FxpConstants = fxpConstants;\r\nexports.SettingsServiceProvider = settingsServiceProvider;\r\nexports.Environment = environment;\r\nexports.FxpContext = fxpContext;\r\nexports.FxpPartnerHttpInterceptorHooks = fxpPartnerHttpInterceptorHooks;\r\nexports.FxpGlobalStoreService = fxpGlobalStoreService;\r\nexports.FxpSignalRService = fxpSignalRService;\r\nexports.FxpGlobalStoreService = fxpGlobalStoreService;\r\nexports.FxpOCVFeedbackService = fxpOCVFeedbackService;\r\nexports.CommonUtils = commonUtils;\r\nexports.ComponentFramework = componentFramework;\r\n\r\n\r\nexports.StorageType = exports.ItEventType = exports.ActionType = exports.EventName = exports.ComponentType = exports.FxpTelemActionType = exports.FxpTelemEventName = exports.FxpTelemActionStatus = void 0;\r\nvar ComponentType;\r\n(function (ComponentType) {\r\n ComponentType[ComponentType[\"Web\"] = 0] = \"Web\";\r\n ComponentType[ComponentType[\"SmartApp\"] = 1] = \"SmartApp\";\r\n ComponentType[ComponentType[\"Device\"] = 2] = \"Device\";\r\n ComponentType[ComponentType[\"BackgroundProcess\"] = 3] = \"BackgroundProcess\";\r\n ComponentType[ComponentType[\"WebService\"] = 4] = \"WebService\";\r\n ComponentType[ComponentType[\"Executable\"] = 5] = \"Executable\";\r\n ComponentType[ComponentType[\"DynamicLinkLibrary\"] = 6] = \"DynamicLinkLibrary\";\r\n ComponentType[ComponentType[\"JobService\"] = 7] = \"JobService\";\r\n ComponentType[ComponentType[\"WorkflowComponent\"] = 8] = \"WorkflowComponent\";\r\n ComponentType[ComponentType[\"DataStore\"] = 9] = \"DataStore\";\r\n ComponentType[ComponentType[\"Other\"] = 10] = \"Other\";\r\n})(ComponentType = exports.ComponentType || (exports.ComponentType = {}));\r\nvar EventName;\r\n(function (EventName) {\r\n EventName[\"PageLoad\"] = \"PageLoad\";\r\n EventName[\"DropdownSelected\"] = \"DropdownSelected\";\r\n EventName[\"DropdownChange\"] = \"DropdownChange\";\r\n EventName[\"PageNavigation\"] = \"PageNavigation\";\r\n EventName[\"CheckboxChange\"] = \"CheckboxChange\";\r\n EventName[\"ListChange\"] = \"ListChange\";\r\n EventName[\"ButtonClick\"] = \"ButtonClick\";\r\n EventName[\"TabChange\"] = \"TabChange\";\r\n EventName[\"TabNavigation\"] = \"TabNavigation\";\r\n EventName[\"PanelOpened\"] = \"PanelOpened\";\r\n EventName[\"PanelClosed\"] = \"PanelClosed\";\r\n EventName[\"PickerSelected\"] = \"PickerSelected\";\r\n EventName[\"PickerDeselected\"] = \"PickerDeselected\";\r\n EventName[\"TileAdded\"] = \"TileAdded\";\r\n EventName[\"TileClicked\"] = \"TileClicked\";\r\n EventName[\"TileDeleted\"] = \"TileDeleted\";\r\n EventName[\"TileLoaded\"] = \"TileLoaded\";\r\n EventName[\"OnFocus\"] = \"OnFocus\";\r\n EventName[\"OnBlur\"] = \"OnBlur\";\r\n EventName[\"TextChange\"] = \"TextChange\";\r\n EventName[\"Scroll\"] = \"Scroll\";\r\n EventName[\"SectionRendering\"] = \"SectionRendering\";\r\n EventName[\"BackEndAPICall\"] = \"BackEndAPICall\";\r\n EventName[\"Rendering\"] = \"Rendering\";\r\n EventName[\"NA\"] = \"NA\";\r\n EventName[\"Hover\"] = \"Hover\";\r\n EventName[\"LinkClicked\"] = \"LinkClicked\";\r\n})(EventName = exports.EventName || (exports.EventName = {}));\r\nvar ActionType;\r\n(function (ActionType) {\r\n ActionType[\"User\"] = \"User\";\r\n ActionType[\"System\"] = \"System\";\r\n ActionType[\"Aware\"] = \"Aware\";\r\n})(ActionType = exports.ActionType || (exports.ActionType = {}));\r\nvar ItEventType;\r\n(function (ItEventType) {\r\n ItEventType[ItEventType[\"FeatureUsageEvent\"] = 0] = \"FeatureUsageEvent\";\r\n ItEventType[ItEventType[\"BusinessProcessEvent\"] = 1] = \"BusinessProcessEvent\";\r\n ItEventType[ItEventType[\"BusinessEventMessageExchange\"] = 2] = \"BusinessEventMessageExchange\";\r\n ItEventType[ItEventType[\"BusinessEventEntityUpdate\"] = 3] = \"BusinessEventEntityUpdate\";\r\n ItEventType[ItEventType[\"BusinessEventDatabaseRecord\"] = 4] = \"BusinessEventDatabaseRecord\";\r\n ItEventType[ItEventType[\"SystemEvent\"] = 5] = \"SystemEvent\";\r\n ItEventType[ItEventType[\"Other\"] = 6] = \"Other\";\r\n})(ItEventType = exports.ItEventType || (exports.ItEventType = {}));\r\nvar StorageType;\r\n(function (StorageType) {\r\n StorageType[StorageType[\"LocalStorage\"] = 0] = \"LocalStorage\";\r\n StorageType[StorageType[\"SessionStorage\"] = 1] = \"SessionStorage\";\r\n})(StorageType = exports.StorageType || (exports.StorageType = {}));\r\nvar FxpTelemActionType;\r\n(function (FxpTelemActionType) {\r\n FxpTelemActionType[\"User\"] = \"User\";\r\n FxpTelemActionType[\"System\"] = \"System\";\r\n FxpTelemActionType[\"Aware\"] = \"Aware\";\r\n})(FxpTelemActionType = exports.FxpTelemActionType || (exports.FxpTelemActionType = {}));\r\nvar FxpTelemEventName;\r\n(function (FxpTelemEventName) {\r\n FxpTelemEventName[\"PageLoad\"] = \"PageLoad\";\r\n FxpTelemEventName[\"DropdownSelected\"] = \"DropdownSelected\";\r\n FxpTelemEventName[\"DropdownChange\"] = \"DropdownChange\";\r\n FxpTelemEventName[\"PageNavigation\"] = \"PageNavigation\";\r\n FxpTelemEventName[\"CheckboxChange\"] = \"CheckboxChange\";\r\n FxpTelemEventName[\"ListChange\"] = \"ListChange\";\r\n FxpTelemEventName[\"ButtonClick\"] = \"ButtonClick\";\r\n FxpTelemEventName[\"TabChange\"] = \"TabChange\";\r\n FxpTelemEventName[\"TabNavigation\"] = \"TabNavigation\";\r\n FxpTelemEventName[\"PanelOpened\"] = \"PanelOpened\";\r\n FxpTelemEventName[\"PanelClosed\"] = \"PanelClosed\";\r\n FxpTelemEventName[\"PickerSelected\"] = \"PickerSelected\";\r\n FxpTelemEventName[\"PickerDeselected\"] = \"PickerDeselected\";\r\n FxpTelemEventName[\"TileAdded\"] = \"TileAdded\";\r\n FxpTelemEventName[\"TileClicked\"] = \"TileClicked\";\r\n FxpTelemEventName[\"TileDeleted\"] = \"TileDeleted\";\r\n FxpTelemEventName[\"TileLoaded\"] = \"TileLoaded\";\r\n FxpTelemEventName[\"OnFocus\"] = \"OnFocus\";\r\n FxpTelemEventName[\"OnBlur\"] = \"OnBlur\";\r\n FxpTelemEventName[\"TextChange\"] = \"TextChange\";\r\n FxpTelemEventName[\"Scroll\"] = \"Scroll\";\r\n FxpTelemEventName[\"SectionRendering\"] = \"SectionRendering\";\r\n FxpTelemEventName[\"BackEndAPICall\"] = \"BackEndAPICall\";\r\n FxpTelemEventName[\"Rendering\"] = \"Rendering\";\r\n FxpTelemEventName[\"NA\"] = \"NA\";\r\n FxpTelemEventName[\"Hover\"] = \"Hover\";\r\n FxpTelemEventName[\"LinkClicked\"] = \"LinkClicked\";\r\n})(FxpTelemEventName = exports.FxpTelemEventName || (exports.FxpTelemEventName = {}));\r\n\r\nvar FxpTelemActionStatus;\r\n(function (FxpTelemActionStatus) {\r\n FxpTelemActionStatus[\"Succeeded\"] = \"Succeeded\";\r\n FxpTelemActionStatus[\"Failed\"] = \"Failed\";\r\n FxpTelemActionStatus[\"NA\"] = \"NA\";\r\n})(FxpTelemActionStatus = exports.FxpTelemActionStatus || (exports.FxpTelemActionStatus = {}));","export const Constants = {\r\n BlockedEventTypes: [1, 14, 30, 35],\r\n UrlConstants: {\r\n basicProfileUrl: '#/profile/{alias}/basic',\r\n resourceCalendarUrl: '#/resourcedashboard/{alias}/ResourceManager',\r\n mailUrlForAlias: 'mailto:{alias}@microsoft.com',\r\n mailConfirmationUrlForMCSAlias: '/api/UserAvailabilityConfirmation',\r\n updateAutomatedForecastForAlias: '/api/orchestrators/UpdateForecastFunction',\r\n teamsUrlForAlias:\r\n 'https://teams.microsoft.com/l/chat/0/0?users={alias}@microsoft.com',\r\n projectDetailsUrl: '#/project/{projectIdentifier}/false/resourcemanager',\r\n requestDetailsUrl:\r\n '#/project/{projectIdentifier}/resource/{requestIdentifier}/false/{userRole}',\r\n },\r\n OneProfileConstants: {\r\n searchProfileUrl: '/api/v1/profile/searchprofile?searchText=',\r\n locationUrl: '/api/v1/master/country',\r\n stdTitleUrl: '/api/v1/master/businessroles',\r\n generateReporteesUrl:\r\n '/api/v1/profile/{0}/directreportees/profileskillassessment',\r\n generateBasicProfileUrl: '/api/v2.0/profile/{0}?IncludeInactive=false',\r\n generatePrimarySkillForAliasUrl: '/api/v1/profile/{0}/primaryskill',\r\n },\r\n TimeApiConstants: {\r\n bulkHoursEndpoint: '/api/v2/assignments/labor',\r\n submitterEndpoint: '/api/v1/labor/submitter/{userAlias}',\r\n assignmentEndpoint: '/api/v1/assignments/{userAlias}',\r\n },\r\n GrmApiConstants: {\r\n getDomainDataEndpoint: '/api/v1/Domain/GetDomainData',\r\n filtersPayload: {\r\n DomainDataLists: ['GeographyData'],\r\n },\r\n eventTypesPayload: {\r\n DomainDataLists: ['EventTypes'],\r\n },\r\n },\r\n AvailabilityConstants: {\r\n getWeeklyDistributionUrl: '/api/availability/WeeklyBookings',\r\n getBulkPjmForecastUrl: '/api/pjm/GetBulkForecast',\r\n getSAPForecast: '/api/pjm/GetForecast',\r\n getProjectHourDistribution: '/api/Resource/GetForecastVariance',\r\n getResourceForecast: '/api/Resource/GetForecast',\r\n getResourceNonProjectForecast: '/api/Resource/GetNonProjectForecast',\r\n getLastUpdatedDate: '/api/Resource/GetLastUpdatedDate',\r\n postResourceForecast: '/api/Resource/AddUpdateForecast',\r\n getCSAForecast: '/api/Resource/GetCSAForecast',\r\n getCalendarFreeHours: '/api/Insights/calendarInsights',\r\n getWorkingHoursPerWeek: '/api/Insights/workingHoursPerWeek',\r\n addUpdateCSAForecast: '/api/Resource/AddUpdateCSAForecast',\r\n getResourceTotalForecastHours: '/api/Resource/GetTotalForecastHours',\r\n getResourceForecastAccuracy: '/api/Insights/ForecastAccuracy',\r\n getPsdlISDForecastAccuracy : '/mwb/api/ISDResourceCalendarAccuracy?Alias={0}',\r\n loadMoreTreeKey: 'LOAD_MORE',\r\n createNonProjectDetailsEndUrl: '/api/Resource/CreateNonProjectForecast',\r\n deleteNonProjectDetailsEndUrl: '/api/Resource/DeleteNonProjectForecast/{0}',\r\n SyncActualHours: '/api/Resource/SyncActualHours',\r\n fetchAvailabilityConfigUrl: '/api/availabilityConfigurations',\r\n upsertAvailabilityConfigUrl: '/api/upsertAvailabilityConfiguration',\r\n getCalendarEventsUrl: '/api/Insights/GetMyCalendarEvents?{0}',\r\n getCalendarSettingsUrl: '/api/Insights/GetMyCalendarPermissions',\r\n addUpdateCEForecast: '/api/Talent/UpdateForecast',\r\n fetchFreeFlexHoursUrl: '/api/Talent/GetForecast',\r\n fetchRecommendedHoursUrl: '/api/Recommendation/GetRecommendedAvailability',\r\n forecastMetaDataUrl: '/api/Resource/GetForecastMetaData',\r\n },\r\n FlightingConstants: {\r\n ApplicationName: 'Resource Time Away',\r\n FXPApplicationName: 'Fxp',\r\n FXPFeatures: ['Talentwbflag'],\r\n Features: [\r\n 'RMExperienceEnabled',\r\n 'GeographyFilterEnabled',\r\n 'RMResourceForecast',\r\n 'RMResourceForecastExcluded',\r\n 'RMResourceForecastBusinessRole',\r\n 'ResourceTimeAwayCategories',\r\n 'ResourceTimeAwayCountries',\r\n 'Talentwbflag',\r\n 'PJMToggleSupport',\r\n 'HasAccessToAvailabilityForecastPage',\r\n 'IsNewExperienceExclusiveCesRingUser',\r\n 'IsCESCalendarGA',\r\n 'CESCalendarEnabledForRoleId'\r\n ],\r\n CalendarFeatures: [\r\n 'RMResourceForecast',\r\n 'RMResourceForecastExcluded',\r\n 'RMResourceForecastBusinessRole',\r\n ],\r\n FlightingParamsMapping: {\r\n Alias: 'alias',\r\n CountryCode: 'countryCode',\r\n ResourceCategory: 'resourceCategory',\r\n SDODomainId: 'SDODomainId',\r\n BusinessRoleId: 'businessRoleId',\r\n },\r\n },\r\n ProjectCategoryConstants: {\r\n SAPForecast: 'SAPForecast',\r\n VirtuosoForecast: 'VirtuosoForecast',\r\n Project: 'Project',\r\n NonProject: 'NonProject',\r\n PublicHoliday: 'PublicHoliday',\r\n },\r\n ExcelExportConstants: {\r\n EXCEL_TYPE:\r\n 'application/vnd.openxmlformatsofficedocument.spreadsheetml.sheet;charset=UTF-8',\r\n EXCEL_EXTENSION: '.xlsx',\r\n excelfilename: 'snapshot',\r\n },\r\n GermanCouncilUser: 'GermanCouncilUser',\r\n OutLookCalendarView: 'https://outlook.office.com/mail/options/calendar/view',\r\n ServiceName: 'ResourceAvailability',\r\n ResourceForecastAppName: 'ResourceAvailability.ResourceForecast',\r\n ResourceAssignmentsAppName: 'ResourceAvailability.ResourceAssignments',\r\n ResourceForecastSharedComponentName: 'ResourceAvailability.AFluxScheduler',\r\n PowerBIAppName: 'PowerBISharedComponent',\r\n};\r\n\r\nexport enum UserRole {\r\n RM = 'ResourceManager',\r\n FM = 'FunctionalManager',\r\n REQUESTOR = 'Requestor',\r\n}\r\n\r\nexport class ResourceForecastFeatures {\r\n static startDateChangeCalendar = `${Constants.ResourceForecastAppName}.StartDateChangeCalendar`;\r\n static startDateChangeChevron = `${Constants.ResourceForecastAppName}.StartDateChangeChevron`;\r\n static PJMForecastToggle = `${Constants.ResourceForecastAppName}.PJMForecastToggle`;\r\n static routeToRequestDetails = `${Constants.ResourceForecastAppName}.RouteToRequestDetails`;\r\n static updateForecast = `${Constants.ResourceForecastAppName}.UpdateForecast`;\r\n static listAssignments = `${Constants.ResourceForecastAppName}.ListAssignments`;\r\n static viewLabor = `${Constants.ResourceForecastAppName}.ViewLabor`;\r\n}\r\n\r\nexport class ResourceForecastSharedComponentFeatures {\r\n static startDateChangeCalendar = `${Constants.ResourceForecastSharedComponentName}.StartDateChangeCalendar`;\r\n static startDateChangeChevron = `${Constants.ResourceForecastSharedComponentName}.StartDateChangeChevron`;\r\n static listAssignments = `${Constants.ResourceForecastSharedComponentName}.ListAssignments`;\r\n static viewLabor = `${Constants.ResourceForecastSharedComponentName}.ViewLabor`;\r\n}\r\n\r\nexport enum CSAComponentNumberOfWeeks {\r\n FOUR = 4,\r\n SIX = 6,\r\n EIGHT = 8,\r\n}\r\n\r\nexport interface CSAComponentConfig {\r\n numberOfWeeks?: CSAComponentNumberOfWeeks;\r\n}\r\n\r\nexport enum RecurrencePattern {\r\n none = 'None',\r\n daily = 'Daily',\r\n weekly = 'Weekly',\r\n monthly = 'Monthly',\r\n}\r\n\r\nexport enum forecastUpdateApiErrorCodes {\r\n FcAPISuccess = 'C600',\r\n FcAPIPartialSuccess = 'C601',\r\n GRMDataUpdateError = 'GRMDataUpdateError',\r\n ForecastFetchError = 'ForecastFetchError',\r\n ForecastUpsertError = 'ForecastUpsertError',\r\n ValidationError = 'ValidationError',\r\n CosmosSuccessCode = 'C600',\r\n CosmosErrorCode = 'C601',\r\n CosmosThrottledCode = 'C602',\r\n SAPFetchErrorCode = 'SAP601',\r\n SAPFetchSuccessCode = 'SAP600',\r\n}\r\n\r\nexport var GRMEVENTTYPES = [\r\n {\r\n \"EventTypeId\": 35,\r\n \"EventTypeName\": \"Vacation\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": true,\r\n \"PrivateText\": \"Do Not Contact-Not Working\",\r\n \"PrivateTextColor\": \"#E48BB5\",\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 22,\r\n \"EventTypeName\": \"ROSS Pending from RC\",\r\n \"EventColor\": \"#FF8C00\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": false,\r\n \"IsApplicableToRCs\": true,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 16,\r\n \"EventTypeName\": \"Projects\",\r\n \"EventColor\": \"#A3B367\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": false,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 13,\r\n \"EventTypeName\": \"Other\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 33,\r\n \"EventTypeName\": \"Training Taken\",\r\n \"EventColor\": \"#55ABE5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 21,\r\n \"EventTypeName\": \"ROSS Pending\",\r\n \"EventColor\": \"#FF8C00\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 37,\r\n \"EventTypeName\": \"Appointment\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": false,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": true,\r\n \"PrivateText\": \"Contact Manager\",\r\n \"PrivateTextColor\": \"#E48BB5\",\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 11,\r\n \"EventTypeName\": \"MS Event\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": false,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 4,\r\n \"EventTypeName\": \"DSE Contract Work\",\r\n \"EventColor\": \"#1C5850\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": false,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 17,\r\n \"EventTypeName\": \"Public Holiday\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 1,\r\n \"EventTypeName\": \"Bereavement\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": true,\r\n \"PrivateText\": \"Do Not Contact-Not Working\",\r\n \"PrivateTextColor\": \"#E48BB5\",\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 3,\r\n \"EventTypeName\": \"CritSit Only\",\r\n \"EventColor\": \"#5FBE7D\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 5,\r\n \"EventTypeName\": \"Jury Duty\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": true,\r\n \"PrivateText\": \"Do Not Contact-Not Working\",\r\n \"PrivateTextColor\": \"#E48BB5\",\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 6,\r\n \"EventTypeName\": \"Leaving Role\",\r\n \"EventColor\": \"#000000\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 7,\r\n \"EventTypeName\": \"Lieu Day (Comp)\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 8,\r\n \"EventTypeName\": \"Local visits only\",\r\n \"EventColor\": \"#D2B48C\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 9,\r\n \"EventTypeName\": \"Managed IP Development\",\r\n \"EventColor\": \"#55ABE5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 10,\r\n \"EventTypeName\": \"Mentoring\",\r\n \"EventColor\": \"#55ABE5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": false,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 12,\r\n \"EventTypeName\": \"On Call\",\r\n \"EventColor\": \"#33BAB1\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": true,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 14,\r\n \"EventTypeName\": \"Parental Leave\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": false,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": true,\r\n \"PrivateText\": \"Do Not Contact-Not Working\",\r\n \"PrivateTextColor\": \"#E48BB5\",\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 15,\r\n \"EventTypeName\": \"Pre or Post Visit\",\r\n \"EventColor\": \"#A3B367\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 18,\r\n \"EventTypeName\": \"RaaS Only\",\r\n \"EventColor\": \"#254069\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 19,\r\n \"EventTypeName\": \"Reactive Only\",\r\n \"EventColor\": \"#5FBE7D\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 27,\r\n \"EventTypeName\": \"Scheduled Only\",\r\n \"EventColor\": \"#FECB6F\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": false,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 30,\r\n \"EventTypeName\": \"Sick\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": true,\r\n \"PrivateText\": \"Do Not Contact-Not Working\",\r\n \"PrivateTextColor\": \"#E48BB5\",\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 55,\r\n \"EventTypeName\": \"Success Activities\",\r\n \"EventColor\": \"#008080\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": false,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 31,\r\n \"EventTypeName\": \"Training Delivery\",\r\n \"EventColor\": \"#55ABE5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 32,\r\n \"EventTypeName\": \"Training Developed\",\r\n \"EventColor\": \"#55ABE5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": true,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 34,\r\n \"EventTypeName\": \"Travel\",\r\n \"EventColor\": \"#ABABAB\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 36,\r\n \"EventTypeName\": \"Weekend Off\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": false,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": false,\r\n \"PrivateText\": null,\r\n \"PrivateTextColor\": null,\r\n \"IsActive\": true\r\n },\r\n {\r\n \"EventTypeId\": 63,\r\n \"EventTypeName\": \"Time Away\",\r\n \"EventColor\": \"#E48BB5\",\r\n \"DisplayInEventList\": true,\r\n \"IsBusy\": true,\r\n \"IsCommentRequired\": false,\r\n \"IsApplicableToManagers\": true,\r\n \"IsApplicableToRCs\": false,\r\n \"IsSickVacationTraining\": true,\r\n \"IsSystemGenerated\": false,\r\n \"IsAllDayEvent\": false,\r\n \"IsSpecialtyRequired\": false,\r\n \"IsPrivate\": true,\r\n \"PrivateText\": \"Do Not Contact-Not Working\",\r\n \"PrivateTextColor\": \"#E48BB5\",\r\n \"IsActive\": true\r\n }\r\n];\r\n","import { Environment } from '@fxp/fxpservices';\r\nimport { aurorasit } from '../configs/appSettings.aurorasit';\r\nimport { dev } from '../configs/appSettings.dev';\r\nimport { prod } from '../configs/appSettings.prod';\r\nimport { sit } from '../configs/appSettings.sit';\r\nimport { uat } from '../configs/appSettings.uat';\r\nimport { IPartnerAppSettings } from '../interface/IPartnerAppSettings';\r\n\r\nexport const appSettings = (): IPartnerAppSettings => {\r\n let appSetting;\r\n // tslint:disable-next-line: no-string-literal\r\n switch (window['FxpAppSettings'].EnvironmentName) {\r\n case Environment.Dev:\r\n appSetting = dev;\r\n break;\r\n case Environment.Sit:\r\n appSetting = sit;\r\n break;\r\n case Environment.Uat:\r\n appSetting = uat;\r\n break;\r\n case Environment.AuroraSit:\r\n appSetting = aurorasit;\r\n break;\r\n case Environment.Prod:\r\n appSetting = prod;\r\n break;\r\n default:\r\n appSetting = dev;\r\n break;\r\n }\r\n\r\n return appSetting;\r\n};\r\n","import { IPartnerAppSettings } from '../interface/IPartnerAppSettings';\r\n\r\nexport const aurorasit: IPartnerAppSettings = {\r\n // Flighting call does not support AuroraSit currently. Fallback to Sit\r\n flightingAppEnvironment: 'Sit',\r\n esxpBaseUrl: 'https://esxp-aurora-sit.microsoft.com/',\r\n cdnBaseUrl: 'https://gcmra-ui-aurorasit.azureedge.net',\r\n serviceEndPoints: [\r\n {\r\n clientId: '99b7fa0a-a125-4f7a-abea-efb429bb8972',\r\n serviceEndPoint: 'https://oneprofileuatapipack.azurefd.net',\r\n },\r\n {\r\n clientId: '5eb170f9-f828-4121-936c-288eb43b050e',\r\n serviceEndPoint:\r\n 'https://professionalservicesint.microsoft.com/Time2-SIT',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'https://esxp-aurora-sit.microsoft.com/rmavl',\r\n },\r\n {\r\n clientId: '38578c27-d821-45d3-95db-fcf0e8371e68',\r\n serviceEndPoint: 'https://grmetoeapiwus.azurewebsites.net',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'https://maintenancebackgroundfunction-uat-wus.azurewebsites.net',\r\n },\r\n {\r\n clientId: 'c5779b49-c238-45cb-8974-36958d4c7d96',\r\n serviceEndPoint: 'https://pslakedsdev.azurewebsites.net',\r\n }\r\n ],\r\n OneProfileBaseUrl: 'https://oneprofileuatapipack.azurefd.net',\r\n TimeCoreBaseUrl: 'https://professionalservicesint.microsoft.com/Time2-SIT',\r\n TimeSubscriptionKey: 'b7f08ad447dd45f490a0f812eaef7bfc',\r\n AvailabilityBaseUrl: 'https://esxp-aurora-sit.microsoft.com/rmavl',\r\n UpdateAutomatedForecastUrl: 'https://maintenancebackgroundfunction-uat-wus.azurewebsites.net',\r\n GrmApiBaseUrl: 'https://grmetoeapiwus.azurewebsites.net',\r\n GrmAzureSearchUrl: 'https://esxp-sit.microsoft.com',\r\n PsdlISDForecastBaseUrl :'https://pslakedsdev.azurewebsites.net',\r\n ProjectDetailsEndUrl:\r\n '/api/v1/Search/grmaurorasit/grm-assignmentsearch-aurorasit-index',\r\n EmailNotificationBaseUrl: '',\r\n TimeAssetsUrl: 'https://LMT-AFD-ENDPOINT-DEV-f4g0gngpg0cucqgt.b02.azurefd.net/assets/',\r\n RMResourceForecast: {\r\n NonProjectEventPriority: [35, 22, 16, 13, 33, 21, 37, 11, 4, 17],\r\n ClarityCode: '',\r\n },\r\n RMExperience: {\r\n batchSize: 10,\r\n numAvAPIParallelCalls: 2,\r\n RMPageSize: 100,\r\n isCosmosEndpoint: true,\r\n },\r\n};\r\n","import { IPartnerAppSettings } from '../interface/IPartnerAppSettings';\r\n\r\nexport const dev: IPartnerAppSettings = {\r\n flightingAppEnvironment: 'Dev',\r\n esxpBaseUrl: 'http://localhost:5000/',\r\n cdnBaseUrl: 'http://localhost:5003',\r\n serviceEndPoints: [\r\n {\r\n clientId: '99b7fa0a-a125-4f7a-abea-efb429bb8972',\r\n serviceEndPoint: 'https://oneprofileuatapipack.azurefd.net',\r\n },\r\n {\r\n clientId: '5eb170f9-f828-4121-936c-288eb43b050e',\r\n serviceEndPoint:\r\n 'https://professionalservicesint.microsoft.com/lmt-coreapi-dev',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'https://esxp-sit.microsoft.com/rmavl',\r\n },\r\n {\r\n clientId: '38578c27-d821-45d3-95db-fcf0e8371e68',\r\n serviceEndPoint: 'https://grmapiappsit.azurewebsites.net',\r\n },\r\n {\r\n clientId: '38578c27-d821-45d3-95db-fcf0e8371e68',\r\n serviceEndPoint: 'https://esxp-sit.microsoft.com',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'http://localhost:7071',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'https://maintenancebackgroundfunction-uat-wus.azurewebsites.net',\r\n },\r\n {\r\n clientId: 'c5779b49-c238-45cb-8974-36958d4c7d96',\r\n serviceEndPoint: 'https://pslakedsdev.azurewebsites.net',\r\n }\r\n ],\r\n OneProfileBaseUrl: 'https://oneprofileuatapipack.azurefd.net',\r\n AvailabilityBaseUrl: 'https://esxp-sit.microsoft.com/rmavl',\r\n EmailNotificationBaseUrl: 'http://localhost:7071',\r\n TimeCoreBaseUrl:\r\n 'https://professionalservicesint.microsoft.com/lmt-coreapi-dev',\r\n UpdateAutomatedForecastUrl: 'https://maintenancebackgroundfunction-uat-wus.azurewebsites.net',\r\n TimeSubscriptionKey: 'fd723c776fbd432fb12471dcf25d5c10',\r\n GrmApiBaseUrl: 'https://grmapiappsit.azurewebsites.net',\r\n GrmAzureSearchUrl: 'https://esxp-sit.microsoft.com',\r\n PsdlISDForecastBaseUrl :'https://pslakedsdev.azurewebsites.net',\r\n ProjectDetailsEndUrl: '/api/v1/Search/grmsit/grm-assignmentsearch-sit-index',\r\n TimeAssetsUrl: 'https://LMT-AFD-ENDPOINT-DEV-f4g0gngpg0cucqgt.b02.azurefd.net/assets/',\r\n RMResourceForecast: {\r\n NonProjectEventPriority: [35, 22, 16, 13, 33, 21, 37, 11, 4, 17],\r\n ClarityCode: '',\r\n },\r\n\r\n RMExperience: {\r\n batchSize: 5,\r\n numAvAPIParallelCalls: 4,\r\n RMPageSize: 10,\r\n isCosmosEndpoint: true,\r\n },\r\n};\r\n","import { IPartnerAppSettings } from '../interface/IPartnerAppSettings';\r\n\r\nexport const prod: IPartnerAppSettings = {\r\n flightingAppEnvironment: 'Prod',\r\n esxpBaseUrl: 'https://esxp.microsoft.com/',\r\n cdnBaseUrl: 'https://gcmra-ui-prod-react-ghd0bfbjabb9gndf.b02.azurefd.net/availability',\r\n serviceEndPoints: [\r\n {\r\n clientId: '6db0b12a-edd4-4521-8406-a615ce8659d6',\r\n serviceEndPoint: 'https://oneprofileprodapipack.azurefd.net',\r\n },\r\n {\r\n clientId: '22c68362-0f39-4ef6-a5a6-2eb389b8592f',\r\n serviceEndPoint: 'https://professionalservices.microsoft.com/lmt-coreapi',\r\n },\r\n {\r\n clientId: 'bc72c2f2-9689-42a0-aa49-f579509c867b',\r\n serviceEndPoint: 'https://esxp.microsoft.com/rmavl',\r\n },\r\n {\r\n clientId: '72a9e05a-2c3c-47ae-bbb2-06ec753f307a',\r\n serviceEndPoint: 'https://esxp-prod.azurefd.net/grm/rm',\r\n },\r\n {\r\n clientId: '72a9e05a-2c3c-47ae-bbb2-06ec753f307a',\r\n serviceEndPoint: 'https://esxp.microsoft.com/api/v1/Search',\r\n },\r\n {\r\n clientId: 'bc72c2f2-9689-42a0-aa49-f579509c867b',\r\n serviceEndPoint: 'https://emailnotifications-prod-wus.azurewebsites.net',\r\n },\r\n {\r\n clientId: 'bc72c2f2-9689-42a0-aa49-f579509c867b',\r\n serviceEndPoint: 'https://maintenancebackgroundfunction-prod-wus.azurewebsites.net',\r\n },\r\n {\r\n clientId: 'e03cd7c9-8c94-45dd-b4b8-68957267ec20',\r\n serviceEndPoint: 'https://pslakeds.azurewebsites.net',\r\n }\r\n ],\r\n OneProfileBaseUrl: 'https://oneprofileprodapipack.azurefd.net',\r\n TimeCoreBaseUrl: 'https://professionalservices.microsoft.com/lmt-coreapi',\r\n EmailNotificationBaseUrl:\r\n 'https://emailnotifications-prod-wus.azurewebsites.net',\r\n TimeSubscriptionKey: 'acc2cbb3f24e4f7ba55220041d0ce2fd',\r\n AvailabilityBaseUrl: 'https://esxp.microsoft.com/rmavl',\r\n UpdateAutomatedForecastUrl: 'https://maintenancebackgroundfunction-prod-wus.azurewebsites.net',\r\n GrmApiBaseUrl: 'https://esxp-prod.azurefd.net/grm/rm',\r\n GrmAzureSearchUrl: 'https://esxp.microsoft.com/api/v1/Search',\r\n PsdlISDForecastBaseUrl :'https://pslakeds.azurewebsites.net',\r\n ProjectDetailsEndUrl:\r\n '/grmprod/grm-assignmentsearch-prod-index',\r\n TimeAssetsUrl: 'https://LMT-AFD-ENDPOINT-PROD-a5hrgyg7a2edh9h9.b02.azurefd.net/assets/',\r\n RMResourceForecast: {\r\n NonProjectEventPriority: [63, 35, 22, 16, 13, 33, 21, 37, 11, 4, 17],\r\n ClarityCode: '',\r\n },\r\n RMExperience: {\r\n batchSize: 5,\r\n numAvAPIParallelCalls: 2,\r\n RMPageSize: 10,\r\n isCosmosEndpoint: true,\r\n },\r\n};\r\n","import { IPartnerAppSettings } from '../interface/IPartnerAppSettings';\r\n\r\nexport const sit: IPartnerAppSettings = {\r\n flightingAppEnvironment: 'Sit',\r\n esxpBaseUrl: 'https://servicesint.azurewebsites.net',\r\n cdnBaseUrl: 'https://grm-ui-sit.azureedge.net/availability',\r\n serviceEndPoints: [\r\n {\r\n clientId: '99b7fa0a-a125-4f7a-abea-efb429bb8972',\r\n serviceEndPoint: 'https://oneprofileuatapipack.azurefd.net',\r\n },\r\n {\r\n clientId: '5eb170f9-f828-4121-936c-288eb43b050e',\r\n serviceEndPoint:\r\n 'https://professionalservicesint.microsoft.com/lmt-coreapi-dev',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'https://esxp-sit.microsoft.com/rmavl',\r\n },\r\n {\r\n clientId: '38578c27-d821-45d3-95db-fcf0e8371e68',\r\n serviceEndPoint: 'https://grmapiappsit.azurewebsites.net',\r\n },\r\n {\r\n clientId: '38578c27-d821-45d3-95db-fcf0e8371e68',\r\n serviceEndPoint: 'https://esxp-sit.microsoft.com',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'https://maintenancebackgroundfunction-uat-wus.azurewebsites.net',\r\n },\r\n {\r\n clientId: 'c5779b49-c238-45cb-8974-36958d4c7d96',\r\n serviceEndPoint: 'https://pslakedsdev.azurewebsites.net',\r\n }\r\n ],\r\n OneProfileBaseUrl: 'https://oneprofileuatapipack.azurefd.net',\r\n TimeCoreBaseUrl:\r\n 'https://professionalservicesint.microsoft.com/lmt-coreapi-dev',\r\n TimeSubscriptionKey: 'fd723c776fbd432fb12471dcf25d5c10',\r\n AvailabilityBaseUrl: 'https://esxp-sit.microsoft.com/rmavl',\r\n UpdateAutomatedForecastUrl: 'https://maintenancebackgroundfunction-uat-wus.azurewebsites.net',\r\n EmailNotificationBaseUrl:\r\n 'https://emailnotifications-uat-wus.azurewebsites.net',\r\n GrmApiBaseUrl: 'https://grmapiappsit.azurewebsites.net',\r\n GrmAzureSearchUrl: 'https://esxp-sit.microsoft.com',\r\n PsdlISDForecastBaseUrl :'https://pslakedsdev.azurewebsites.net',\r\n ProjectDetailsEndUrl: '/api/v1/Search/grmsit/grm-assignmentsearch-sit-index',\r\n TimeAssetsUrl: 'https://LMT-AFD-ENDPOINT-DEV-f4g0gngpg0cucqgt.b02.azurefd.net/assets/',\r\n RMResourceForecast: {\r\n NonProjectEventPriority: [35, 22, 16, 13, 33, 21, 37, 11, 4, 17],\r\n ClarityCode: '7he83cktgy',\r\n },\r\n RMExperience: {\r\n batchSize: 5,\r\n numAvAPIParallelCalls: 4,\r\n RMPageSize: 10,\r\n isCosmosEndpoint: true,\r\n },\r\n};\r\n","import { IPartnerAppSettings } from '../interface/IPartnerAppSettings';\r\n\r\nexport const uat: IPartnerAppSettings = {\r\n flightingAppEnvironment: 'Uat',\r\n esxpBaseUrl: 'https://servicesuat.microsoft.com/',\r\n cdnBaseUrl: 'https://grm-ui-uat.azureedge.net/availability',\r\n serviceEndPoints: [\r\n {\r\n clientId: '99b7fa0a-a125-4f7a-abea-efb429bb8972',\r\n serviceEndPoint: 'https://oneprofileuatapipack.azurefd.net',\r\n },\r\n {\r\n clientId: '5eb170f9-f828-4121-936c-288eb43b050e',\r\n serviceEndPoint:\r\n 'https://professionalservicesint.microsoft.com/time-core',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'https://servicesuat.microsoft.com/rmavl',\r\n },\r\n {\r\n clientId: '778329d6-a980-4f3e-bf02-7bc44a384e15',\r\n serviceEndPoint: 'https://esxp-uat.azurefd.net/grm/rm',\r\n },\r\n {\r\n clientId: '778329d6-a980-4f3e-bf02-7bc44a384e15',\r\n serviceEndPoint: 'https://servicesuat.microsoft.com',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'https://emailnotifications-uat-wus.azurewebsites.net',\r\n },\r\n {\r\n clientId: '6f40053e-5319-40e5-a90b-6f714506d96d',\r\n serviceEndPoint: 'https://maintenancebackgroundfunction-uat-wus.azurewebsites.net',\r\n },\r\n {\r\n clientId: 'c5779b49-c238-45cb-8974-36958d4c7d96',\r\n serviceEndPoint: 'https://pslakedsdev.azurewebsites.net',\r\n }\r\n ],\r\n OneProfileBaseUrl: 'https://oneprofileuatapipack.azurefd.net',\r\n TimeCoreBaseUrl: 'https://professionalservicesint.microsoft.com/time-core',\r\n TimeSubscriptionKey: 'fd723c776fbd432fb12471dcf25d5c10',\r\n AvailabilityBaseUrl: 'https://servicesuat.microsoft.com/rmavl',\r\n UpdateAutomatedForecastUrl: 'https://maintenancebackgroundfunction-uat-wus.azurewebsites.net',\r\n EmailNotificationBaseUrl:\r\n 'https://emailnotifications-uat-wus.azurewebsites.net',\r\n GrmApiBaseUrl: 'https://esxp-uat.azurefd.net/grm/rm',\r\n GrmAzureSearchUrl: 'https://servicesuat.microsoft.com',\r\n PsdlISDForecastBaseUrl :'https://pslakedsdev.azurewebsites.net',\r\n ProjectDetailsEndUrl: '/api/v1/Search/grmuat/grm-assignmentsearch-uat-index',\r\n TimeAssetsUrl: 'https://LMT-AFD-ENDPOINT-UAT-fdd8eehqh6bsfbgk.b02.azurefd.net/assets/',\r\n RMResourceForecast: {\r\n NonProjectEventPriority: [35, 22, 16, 13, 33, 21, 37, 11, 4, 17],\r\n ClarityCode: '',\r\n },\r\n RMExperience: {\r\n batchSize: 5,\r\n numAvAPIParallelCalls: 4,\r\n RMPageSize: 10,\r\n isCosmosEndpoint: true,\r\n },\r\n};\r\n","import {\r\n IAppService,\r\n IStateConfig,\r\n IFxpAppContext,\r\n IServiceEndPoints,\r\n IRouteInfo,\r\n IPartnerBundle,\r\n IAppServiceWithSharedComponent,\r\n ISharedComponents,\r\n ISharedComponentConfig,\r\n} from '@fxp/fxpservices';\nimport { StateParams } from '@uirouter/core';\nimport { appSettings } from './environments/common/appsettingsGenerator';\nimport { Constants } from './common/constants';\nimport { PartnerAppRegistrationService } from '@fxp/fxpservices';\n\nexport class RMAvailabilityUXApp_routes\r\n implements IAppService, IAppServiceWithSharedComponent\r\n{\r\n getRoutes(fxpContext: IFxpAppContext): IRouteInfo {\r\n const availabilityRoute: IStateConfig = {\r\n name: 'availability',\r\n url: '/availability?source',\r\n\ngeneratedBundle: 'fe5d77a5a544-AvailabilityModule-Bundle',\n params: new StateParams({\r\n startDate: null,\r\n searchItem: null,\r\n searchByType: null,\r\n }),\r\n data: {\r\n headerName: 'Resource Assignments',\r\n breadcrumbText: 'Resource Assignments',\r\n pageTitle: 'Resource Assignments Page',\r\n partnerTelemetryName: Constants.ServiceName,\r\n },\r\n authorizationRules: {\r\n AllowedPermissions: {\r\n AuthorizeRolesAndResources: false,\r\n Roles: {\r\n Value: ['PS.ResourceManagement', 'PS.FunctionalManagement'],\r\n },\r\n },\r\n },\r\n };\r\n\r\n const ResourceAssignmentsForecastRoute: IStateConfig = {\r\n name: 'availabilityforecast',\r\n url: '/availabilityforecast?source&reason',\r\n\ngeneratedBundle: 'fe5d77a5a544-AFluxSchedulerModule-Bundle',\n data: {\r\n headerName: 'Availability Forecast',\r\n breadcrumbText: 'Availability Forecast',\r\n pageTitle: 'Availability Forecast Page',\r\n partnerTelemetryName: Constants.ServiceName,\r\n appNameForTelemetry: Constants.ResourceForecastAppName, // appName which will be used to construct the feature name as appname.featurename format\r\n pageNameForTelemetry: 'ResourceForecast',\r\n },\r\n };\r\n\r\n const ResourceAssignmentsForecastViewRoute: IStateConfig = {\r\n name: 'availabilityforecastview',\r\n url: '/availabilityforecastview',\r\n\ngeneratedBundle: 'fe5d77a5a544-ForecastViewParentModule-Bundle',\n data: {\r\n headerName: 'Availability Forecast View',\r\n breadcrumbText: 'Availability Forecast View',\r\n pageTitle: 'Availability Forecast Page',\r\n partnerTelemetryName: Constants.ServiceName,\r\n appNameForTelemetry: Constants.ResourceForecastAppName, // appName which will be used to construct the feature name as appname.featurename format\r\n pageNameForTelemetry: 'ResourceForecast',\r\n },\r\n };\r\n\r\n const CESCalendarRoute: IStateConfig = {\r\n name: 'cescalendar',\r\n url: '/cescalendar',\r\n\ngeneratedBundle: 'fe5d77a5a544-CECalendarModule-Bundle',\n data: {\r\n headerName: 'CES Calendar',\r\n breadcrumbText: 'CES Calendar',\r\n pageTitle: 'CES Calendar Page',\r\n partnerTelemetryName: Constants.ServiceName,\r\n appNameForTelemetry: Constants.ResourceForecastAppName, // appName which will be used to construct the feature name as appname.featurename format\r\n pageNameForTelemetry: 'ResourceForecast',\r\n },\r\n };\r\n\r\n // Test Component enabled in lower environments\r\n let sharedComponentTestConfig: IStateConfig = undefined;\r\n if (\r\n ['dev', 'sit'].includes(\r\n appSettings().flightingAppEnvironment.toLocaleLowerCase()\r\n )\r\n ) {\r\n sharedComponentTestConfig = {\r\n name: 'ravailtest',\r\n url: '/ravailtest',\r\n\ngeneratedBundle: 'fe5d77a5a544-TestModule-Bundle',\n data: {\r\n headerName: 'Availability Component Playground',\r\n breadcrumbText: 'Availability Component Playground',\r\n pageTitle: 'Availability Component Playground',\r\n partnerTelemetryName: Constants.ServiceName,\r\n appNameForTelemetry: Constants.ResourceForecastAppName, // appName which will be used to construct the feature name as appname.featurename format\r\n pageNameForTelemetry: 'ResourceForecast',\r\n },\r\n };\r\n }\r\n\r\n const routeInfo: IRouteInfo = {\r\n applicationName: 'RMAvailabilityUXApp',\r\n sharedBundles: [],\r\n adminRules: {\r\n ResourcePermissions: {\r\n AllResourcesMandatory: true,\r\n Value: [\r\n {\r\n Resource: 'FxPPlatform.ResourceManagement',\r\n Permissions: { Value: ['All'] },\r\n },\r\n ],\r\n },\r\n },\r\n routes: [\r\n availabilityRoute,\r\n ResourceAssignmentsForecastRoute,\r\n ResourceAssignmentsForecastViewRoute,\r\n CESCalendarRoute,\r\n ],\r\n };\r\n\r\n // Add test component in lower environments\r\n if (sharedComponentTestConfig) {\r\n routeInfo.routes.push(sharedComponentTestConfig);\r\n }\r\n\r\n return routeInfo;\r\n }\r\n\r\n getServiceEndPoints(): Array {\r\n return appSettings().serviceEndPoints;\r\n }\r\n\r\n getBundles(): IPartnerBundle[] {\r\n return [];\r\n }\r\n\r\n getSharedComponentsInfo(): ISharedComponents {\r\n const availabilityGridSharedComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-AvailabilityGridModule-Bundle',\n componentDescription: 'This component renders hierarchial availability.',\r\n componentInputs: [\r\n ['showForecastHours', 'Show PJM forecast hours'],\r\n [\r\n 'forceRefreshData',\r\n 'Void observable to reapply filters in case data has changed',\r\n ],\r\n [\r\n 'resourceInfoList',\r\n 'Array of Basic Profile info to show on top level of tree',\r\n ],\r\n ['searchByType', 'Set Grid to empty when search type changed'],\r\n [\r\n 'filterParams',\r\n 'Array of IFilterParameters to filter attributes of resourceInfoList',\r\n ],\r\n ['curUserRole', 'RM or FM'],\r\n ],\r\n componentOutputs: [\r\n ['updateFilterBaseValues', 'Send profile attributes to master filter'],\r\n ],\r\n componentName: 'availabilityGrid',\r\n };\r\n const dataFilterComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-FilterModule-Bundle',\n componentDescription:\r\n 'This component renders a filter on a list of data.',\r\n componentInputs: [],\r\n componentOutputs: [],\r\n componentName: 'dataFilter',\r\n };\r\n const calendarTileComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-CalendarTileModule-Bundle',\n componentDescription:\r\n 'This component renders a tile to manage calendar/forecasts',\r\n componentInputs: [],\r\n componentOutputs: [],\r\n componentName: 'calendarTile',\r\n };\r\n const CSAQuickViewComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-CSAQuickViewModule-Bundle',\n componentDescription:\r\n 'This component renders a quick tile to view forecasts',\r\n componentInputs: [['availability', 'CSA Availability forecast data']],\r\n componentOutputs: [],\r\n componentName: 'csaQuickView',\r\n };\r\n const InsightsAndCollaboratorsView: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-InsightsCollaboratorModule-Bundle',\n componentDescription:\r\n 'This component renders a quick tile to view forecasts',\r\n componentInputs: [\r\n ['insightCollaboratorComponentConfig', 'Configuration object'],\r\n ['insightsObservable', 'Insights observable'],\r\n ['collaboratorsObservable', 'Collaborators observable'],\r\n ],\r\n componentOutputs: [],\r\n componentName: 'insightsandcollaborators',\r\n };\r\n const CSAAvailabilityViewComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-CSAAvailabilityViewModule-Bundle',\n componentDescription:\r\n 'This component renders a quick tile to view availability',\r\n componentInputs: [['userAlias', 'User alias']],\r\n componentOutputs: [],\r\n componentName: 'csaAvailView',\r\n };\r\n\r\n const AvailabilitySyncComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-AvailabilityDataSyncModule-Bundle',\n componentDescription:\r\n 'This component provides a quick option to sync past forecast with actual hours',\r\n componentInputs: [\r\n ['userAlias', 'User alias'],\r\n ['requestId', 'Resource Request Id'],\r\n ],\r\n componentOutputs: [],\r\n componentName: 'AvailDataSync',\r\n };\r\n\r\n const CSAForecastComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-CSAModule-Bundle',\n componentDescription: 'This component renders a table to view forecasts',\r\n componentInputs: [\r\n ['csaAvailabilitySubject', 'CSA Availability forecast data'],\r\n ],\r\n componentOutputs: [],\r\n componentName: 'csaForecast',\r\n };\r\n\r\n const ForecastViewComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-ForecastViewModule-Bundle',\n componentDescription: 'This component renders a table to view forecasts',\r\n componentInputs: [\r\n [\r\n 'aFluxSchedulerConfig',\r\n 'Config Object with properties (modes, viewStartDate, request, resource)',\r\n ],\r\n ],\r\n componentOutputs: [],\r\n componentName: 'AFlux-Scheduler',\r\n };\r\n\r\n const AFluxSchedulerComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-AFluxSchedulerWBModule-Bundle',\n componentDescription: 'This component renders a Forecast Scheduler',\r\n componentInputs: [\r\n [\r\n 'aFluxSchedulerConfig',\r\n 'Config Object with properties (modes, viewStartDate, request, resource)',\r\n ],\r\n ],\r\n componentOutputs: [\r\n ['RequestUpdates', 'Event emitted with updated requests'],\r\n ],\r\n componentName: 'AFlux-Scheduler-Parent',\r\n };\r\n\r\n const InfoPopUpComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-InfoPopUpModule-Bundle',\n componentDescription:\r\n 'This component renders graphical info of project hours',\r\n componentInputs: [\r\n ['componentMode', 'Object to specify various component modes'],\r\n [\r\n 'isDistributionDataAvailable',\r\n 'Boolean value to indicate if hour distribution data is already present or not',\r\n ],\r\n [\r\n 'distributionData',\r\n '[requested_hrs, actual_hrs, forecasted_hrs, remaining_hrs]',\r\n ],\r\n [\r\n 'isForecastedHoursDataAvailable',\r\n 'Boolean value to indicate if forecasted data is already present or not',\r\n ],\r\n ['forecastedHoursData', 'Forecasted hours for next 8 weeks'],\r\n ['scheduleEndDate', 'schedule end date'],\r\n ['resourceRequestID', 'Resource request ID'],\r\n ],\r\n componentOutputs: [],\r\n componentName: 'infoPopUp',\r\n };\r\n\r\n const PowerBiComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-PowerbiModule-Bundle',\n componentDescription: 'This component renders powerBi reports',\r\n componentInputs: [\r\n ['embededReportId', 'PowerBi report id'],\r\n ['embededDashboardId', 'PowerBi dashboard id'],\r\n ['PowerBiReportBaseUrl', 'PowerBi report base url'],\r\n ],\r\n componentOutputs: [],\r\n componentName: 'RenderPowerbiReports',\r\n };\r\n\r\n const PowerBiWrapperComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-PowerbiwrapperModule-Bundle',\n componentDescription:\r\n 'This component gets workbench context and renders powerBi reports',\r\n componentInputs: [],\r\n componentOutputs: [],\r\n componentName: 'RenderPowerbiwrapper',\r\n };\r\n\r\n const MessageWrapperComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-MessageWrapperModule-Bundle',\n componentDescription: 'This component renders message',\r\n componentInputs: [['messageConfig', 'Configuration object']],\r\n componentOutputs: [],\r\n componentName: 'MessageWrapperComponent',\r\n };\r\n\r\n const AFluxSummaryComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-AFluxSummaryModule-Bundle',\n componentDescription: 'This component shows forecast summary',\r\n componentInputs: [\r\n ['resourceAlias', 'Resource alias'],\r\n ['config', 'Configuration object'],\r\n ],\r\n componentOutputs: [['resourceDetail', 'Resource detail object']],\r\n componentName: 'AFluxSummaryComponent',\r\n };\r\n\r\n const userPreferenceComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-UserPreferenceModule-Bundle',\n componentDescription:\r\n 'This component allows users to manage consent preferences',\r\n componentInputs: [['resourceAlias', 'Resource Alias']],\r\n componentOutputs: [['onClose', 'Callback on save/dismiss of component']],\r\n componentName: 'userPreference',\r\n };\r\n\r\n const AFluxSchedulerWrapperComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-AFluxSchedulerWrapperModule-Bundle',\n componentDescription:\r\n 'This component is wrapper for all the forecast scheduler component instances',\r\n componentInputs: [],\r\n componentOutputs: [],\r\n componentName: 'ForecastSchedulerWrapper',\r\n };\r\n\r\n const ceFreeFlexHeaderComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-CEFreeFlexHeaderModule-Bundle',\n componentDescription: 'This component is the header for ce calendar',\r\n componentInputs: [\r\n [\r\n 'config',\r\n 'Config Object with properties (alias, startDate, numOfColumns)',\r\n ],\r\n ],\r\n componentOutputs: [],\r\n componentName: 'CEFreeFlexHeaderComponent',\r\n };\r\n\r\n const ceFreeFlexWidgetComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-CEFreeFlexWidgetModule-Bundle',\n componentDescription:\r\n 'This component is a widget displaying free flex hours and supports actions to edit',\r\n componentInputs: [\r\n ['prefetchBundleOnly', 'true to not render the component'],\r\n ['freeHours', 'Free hours'],\r\n ['flexHours', 'Flex hours'],\r\n ['isUserUpdated', 'is updated by user'],\r\n ['isReadonly', 'is editing disabled'],\r\n ['compactMode', 'for smaller containers'],\r\n ['alias', 'user alias'],\r\n ['date', 'date of forecast'],\r\n ],\r\n componentOutputs: [],\r\n componentName: 'CEFreeFlexWidgetComponent',\r\n };\r\n\r\n const availabilityTileComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-AvailabilityTileModule-Bundle',\n componentDescription: 'Availability tile on dashboard.',\r\n componentInputs: [],\r\n componentOutputs: [],\r\n componentName: 'AvailabilityTile',\r\n };\r\n\r\n const clarityComp: ISharedComponentConfig = {\r\n\ngeneratedBundle: 'fe5d77a5a544-ClarityModule-Bundle',\n componentDescription: 'Component to inject clarity script.',\r\n componentInputs: [],\r\n componentOutputs: [],\r\n componentName: 'Clarity',\r\n };\r\n\r\n return {\r\n appName: 'RMAvailabilityUXApp',\r\n components: [\r\n availabilityGridSharedComp,\r\n dataFilterComp,\r\n calendarTileComp,\r\n CSAQuickViewComp,\r\n CSAForecastComp,\r\n CSAAvailabilityViewComp,\r\n AvailabilitySyncComp,\r\n ForecastViewComp,\r\n AFluxSchedulerComp,\r\n InfoPopUpComp,\r\n PowerBiComp,\r\n PowerBiWrapperComp,\r\n InsightsAndCollaboratorsView,\r\n MessageWrapperComp,\r\n AFluxSummaryComp,\r\n userPreferenceComp,\r\n AFluxSchedulerWrapperComp,\r\n ceFreeFlexHeaderComp,\r\n ceFreeFlexWidgetComp,\r\n availabilityTileComp,\r\n clarityComp,\r\n ],\r\n disableSharing: false,\r\n sharedBundles: [],\r\n };\r\n }\r\n public getGeneratedBundles() {\r\n var baseUrl = '';\r\n var currentScriptUrl = document.currentScript['src'];\r\n if (currentScriptUrl.indexOf('exclude.inline.bundle') > 0) {\r\n currentScriptUrl = Error().stack.match(/(https?:\\/\\/[^ ]*)/g);\r\n baseUrl = currentScriptUrl\r\n .filter((item) => item.indexOf('localhost:5000') === -1)[0]\r\n .toLowerCase();\r\n baseUrl = baseUrl.substring(0, baseUrl.lastIndexOf('/'));\r\n } else {\r\n baseUrl = currentScriptUrl.substring(0, currentScriptUrl.lastIndexOf('/'));\r\n }\r\n if (baseUrl.endsWith(\"/\")){\r\n baseUrl = baseUrl.substring(0, baseUrl.lastIndexOf('/'));\r\n }\r\n return [\r\n {\n name: 'fe5d77a5a544-AvailabilityModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/AvailabilityModule.vendor.bundle.js',\n baseUrl + '/AvailabilityModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-AFluxSchedulerModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/AFluxSchedulerModule.vendor.bundle.js',\n baseUrl + '/AFluxSchedulerModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-ForecastViewParentModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/ForecastViewParentModule.vendor.bundle.js',\n baseUrl + '/ForecastViewParentModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-CECalendarModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/CECalendarModule.vendor.bundle.js',\n baseUrl + '/CECalendarModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-TestModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/TestModule.vendor.bundle.js',\n baseUrl + '/TestModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-AvailabilityGridModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/AvailabilityGridModule.vendor.bundle.js',\n baseUrl + '/AvailabilityGridModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-FilterModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/FilterModule.vendor.bundle.js',\n baseUrl + '/FilterModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-CalendarTileModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/CalendarTileModule.vendor.bundle.js',\n baseUrl + '/CalendarTileModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-CSAQuickViewModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/CSAQuickViewModule.vendor.bundle.js',\n baseUrl + '/CSAQuickViewModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-InsightsCollaboratorModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/InsightsCollaboratorModule.vendor.bundle.js',\n baseUrl + '/InsightsCollaboratorModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-CSAAvailabilityViewModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/CSAAvailabilityViewModule.vendor.bundle.js',\n baseUrl + '/CSAAvailabilityViewModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-AvailabilityDataSyncModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/AvailabilityDataSyncModule.vendor.bundle.js',\n baseUrl + '/AvailabilityDataSyncModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-CSAModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/CSAModule.vendor.bundle.js',\n baseUrl + '/CSAModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-ForecastViewModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/ForecastViewModule.vendor.bundle.js',\n baseUrl + '/ForecastViewModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-AFluxSchedulerWBModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/AFluxSchedulerWBModule.vendor.bundle.js',\n baseUrl + '/AFluxSchedulerWBModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-InfoPopUpModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/InfoPopUpModule.vendor.bundle.js',\n baseUrl + '/InfoPopUpModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-PowerbiModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/PowerbiModule.vendor.bundle.js',\n baseUrl + '/PowerbiModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-PowerbiwrapperModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/PowerbiwrapperModule.vendor.bundle.js',\n baseUrl + '/PowerbiwrapperModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-MessageWrapperModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/MessageWrapperModule.vendor.bundle.js',\n baseUrl + '/MessageWrapperModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-AFluxSummaryModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/AFluxSummaryModule.vendor.bundle.js',\n baseUrl + '/AFluxSummaryModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-UserPreferenceModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/UserPreferenceModule.vendor.bundle.js',\n baseUrl + '/UserPreferenceModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-AFluxSchedulerWrapperModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/AFluxSchedulerWrapperModule.vendor.bundle.js',\n baseUrl + '/AFluxSchedulerWrapperModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-CEFreeFlexHeaderModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/CEFreeFlexHeaderModule.vendor.bundle.js',\n baseUrl + '/CEFreeFlexHeaderModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-CEFreeFlexWidgetModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/CEFreeFlexWidgetModule.vendor.bundle.js',\n baseUrl + '/CEFreeFlexWidgetModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-AvailabilityTileModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/AvailabilityTileModule.vendor.bundle.js',\n baseUrl + '/AvailabilityTileModule.bundle.js'\n ],\n sequentialLoading: true \n },\n {\n name: 'fe5d77a5a544-ClarityModule-Bundle',\n files: [\n baseUrl + '/styles.bundle.js',\n baseUrl + '/ClarityModule.vendor.bundle.js',\n baseUrl + '/ClarityModule.bundle.js'\n ],\n sequentialLoading: true \n },\n\r\n ]\r\n}\n}\n\nPartnerAppRegistrationService.registerLazyLoadedApp(RMAvailabilityUXApp_routes, 'RMAvailabilityUXApp');\n"],"sourceRoot":"webpack:///ra-ux-web"}