@coolon/angular-ui-powerups 3.5.3 → 3.7.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/bundles/coolon-angular-ui-powerups-cypress.umd.js +41 -1
  3. package/bundles/coolon-angular-ui-powerups-cypress.umd.js.map +1 -1
  4. package/bundles/coolon-angular-ui-powerups-cypress.umd.min.js +1 -1
  5. package/bundles/coolon-angular-ui-powerups-cypress.umd.min.js.map +1 -1
  6. package/bundles/coolon-angular-ui-powerups.umd.js +248 -191
  7. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  8. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  9. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  10. package/coolon-angular-ui-powerups.metadata.json +1 -1
  11. package/cypress/components/aup-navigation.d.ts +9 -0
  12. package/cypress/coolon-angular-ui-powerups-cypress.metadata.json +1 -1
  13. package/cypress/exports.d.ts +1 -0
  14. package/cypress/package.json +2 -1
  15. package/cypress/page.d.ts +3 -0
  16. package/cypress/section.d.ts +5 -0
  17. package/esm2015/cypress/components/aup-navigation.js +21 -0
  18. package/esm2015/cypress/components/aup-navigation.js.map +1 -0
  19. package/esm2015/cypress/components/aup-navigation.metadata.json +1 -0
  20. package/esm2015/cypress/exports.js +1 -0
  21. package/esm2015/cypress/exports.js.map +1 -1
  22. package/esm2015/cypress/exports.metadata.json +1 -1
  23. package/esm2015/cypress/page.js +10 -1
  24. package/esm2015/cypress/page.js.map +1 -1
  25. package/esm2015/cypress/page.metadata.json +1 -1
  26. package/esm2015/cypress/section.js +7 -0
  27. package/esm2015/cypress/section.js.map +1 -1
  28. package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
  29. package/esm2015/lib/components/forms/number-input/number-input.component.js +2 -3
  30. package/esm2015/lib/components/forms/number-input/number-input.component.js.map +1 -1
  31. package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
  32. package/esm2015/lib/components/forms/password-input/password-input.component.js +5 -4
  33. package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
  34. package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
  35. package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
  36. package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
  37. package/esm2015/lib/components/forms/string-input/string-input.component.js +2 -1
  38. package/esm2015/lib/components/forms/string-input/string-input.component.js.map +1 -1
  39. package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
  40. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js +12 -0
  41. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.js.map +1 -1
  42. package/esm2015/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.metadata.json +1 -1
  43. package/esm2015/lib/place/components/abstract-place-navigation.component.js +7 -5
  44. package/esm2015/lib/place/components/abstract-place-navigation.component.js.map +1 -1
  45. package/esm2015/lib/place/components/abstract-place-navigation.component.metadata.json +1 -1
  46. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js +6 -6
  47. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.js.map +1 -1
  48. package/esm2015/lib/place/components/list-place-nav/list-place-nav.component.metadata.json +1 -1
  49. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js +5 -5
  50. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.js.map +1 -1
  51. package/esm2015/lib/place/components/side-place-navigation/side-place-navigation.component.metadata.json +1 -1
  52. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +5 -5
  53. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js.map +1 -1
  54. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.metadata.json +1 -1
  55. package/esm2015/lib/place/exports.js +1 -0
  56. package/esm2015/lib/place/exports.js.map +1 -1
  57. package/esm2015/lib/place/exports.metadata.json +1 -1
  58. package/esm2015/lib/place/guards/place.guard.js +94 -43
  59. package/esm2015/lib/place/guards/place.guard.js.map +1 -1
  60. package/esm2015/lib/place/guards/place.guard.metadata.json +1 -1
  61. package/esm2015/lib/place/guards/place.guard.ngfactory.js.map +1 -0
  62. package/esm2015/lib/place/place-auth-service.js +3 -0
  63. package/esm2015/lib/place/place-auth-service.js.map +1 -0
  64. package/esm2015/lib/place/place-auth-service.metadata.json +1 -0
  65. package/esm2015/lib/place/place-component.js +12 -2
  66. package/esm2015/lib/place/place-component.js.map +1 -1
  67. package/esm2015/lib/place/place-component.metadata.json +1 -1
  68. package/esm2015/lib/place/place-definition.js +2 -1
  69. package/esm2015/lib/place/place-definition.js.map +1 -1
  70. package/esm2015/lib/place/place-definition.metadata.json +1 -1
  71. package/esm2015/lib/place/place-router.js +6 -0
  72. package/esm2015/lib/place/place-router.js.map +1 -1
  73. package/esm2015/lib/place/place-router.metadata.json +1 -1
  74. package/esm2015/lib/place/place.decorator.js +1 -1
  75. package/esm2015/lib/place/place.decorator.js.map +1 -1
  76. package/fesm2015/coolon-angular-ui-powerups-cypress.js +36 -2
  77. package/fesm2015/coolon-angular-ui-powerups-cypress.js.map +1 -1
  78. package/fesm2015/coolon-angular-ui-powerups.js +205 -135
  79. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  80. package/lib/components/forms/number-input/number-input.component.d.ts +1 -0
  81. package/lib/components/forms/password-input/password-input.component.d.ts +1 -0
  82. package/lib/components/forms/string-input/string-input.component.d.ts +1 -0
  83. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +12 -0
  84. package/lib/place/components/abstract-place-navigation.component.d.ts +2 -2
  85. package/lib/place/components/list-place-nav/list-place-nav.component.d.ts +2 -2
  86. package/lib/place/components/side-place-navigation/side-place-navigation.component.d.ts +2 -2
  87. package/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.d.ts +2 -2
  88. package/lib/place/exports.d.ts +1 -0
  89. package/lib/place/guards/place.guard.d.ts +5 -7
  90. package/lib/place/place-auth-service.d.ts +36 -0
  91. package/lib/place/place-component.d.ts +2 -1
  92. package/lib/place/place-definition.d.ts +2 -1
  93. package/lib/place/place-router.d.ts +1 -0
  94. package/lib/place/place.decorator.d.ts +1 -0
  95. package/package.json +1 -1
  96. package/schematics/bootstrap-app/index.js +4 -0
  97. package/schematics/bootstrap-app/index.js.map +1 -1
  98. package/schematics/bootstrap-app/templates/app/app.module.ts.template +4 -2
  99. package/schematics/bootstrap-app/templates/app/auth/place-auth.service.ts.template +41 -0
  100. package/schematics/collection.json +5 -0
  101. package/schematics/ng-add/index.js +1 -1
  102. package/schematics/ng-add/index.js.map +1 -1
  103. package/schematics/place-add/index.js +2 -1
  104. package/schematics/place-add/index.js.map +1 -1
  105. package/schematics/place-add/templates/component/__name@dasherize__.component.scss.template +1 -0
  106. package/schematics/place-bootstrap/index.d.ts +3 -0
  107. package/schematics/place-bootstrap/index.js +21 -0
  108. package/schematics/place-bootstrap/index.js.map +1 -0
  109. package/schematics/place-bootstrap/schema.d.ts +4 -0
  110. package/schematics/place-bootstrap/schema.js +3 -0
  111. package/schematics/place-bootstrap/schema.js.map +1 -0
  112. package/schematics/place-bootstrap/schema.json +28 -0
  113. package/schematics/place-routes/place-builder.d.ts +0 -1
  114. package/schematics/place-routes/place-builder.js +34 -24
  115. package/schematics/place-routes/place-builder.js.map +1 -1
  116. package/schematics/place-routes/place-class-scanner.js +2 -1
  117. package/schematics/place-routes/place-class-scanner.js.map +1 -1
  118. package/schematics/place-routes/place-def.d.ts +1 -0
  119. package/schematics/place-routes/place-def.js +2 -2
  120. package/schematics/place-routes/place-def.js.map +1 -1
  121. package/schematics/place-routes/schema.d.ts +1 -4
  122. package/schematics/place-routes/schema.json +9 -1
  123. package/schematics/place-routes/templates/place-destinations.ts.template +1 -9
  124. package/schematics/place-routes/templates/place-routes.ts.template +3 -39
  125. package/schematics/place-routes/templates/place-visits.ts.template +1 -10
  126. package/schematics/bootstrap-app/templates/app/auth/auth.guard.ts.template +0 -23
  127. package/schematics/bootstrap-app/templates/app/auth/auth.module.ts.template +0 -13
  128. package/schematics/bootstrap-app/templates/app/auth/auth.service.ts.template +0 -13
  129. package/schematics/bootstrap-app/templates/app/places/places.json5.template +0 -3
  130. /package/schematics/{bootstrap-app/templates/app/places → place-bootstrap/templates/__name@dasherize__}/place-routes.ts.template +0 -0
  131. /package/schematics/{bootstrap-app/templates/app/places → place-bootstrap/templates/__name@dasherize__}/places.module.ts.template +0 -0
@@ -5,7 +5,7 @@ import { PlaceDefinition } from './place-definition';
5
5
  export function Place(options) {
6
6
  return (target) => {
7
7
  if (PlaceComponent.isPlaceComponentConstructor(target)) {
8
- PlaceComponent.injectDefinition(target, new PlaceDefinition(target, options.path, _.isNil(options.authenticate) ? true : options.authenticate, options.data, PlaceComponent.getRouteParameters(target), (options.children || []).map(c => PlaceComponent.getDefinition(c))));
8
+ PlaceComponent.injectDefinition(target, new PlaceDefinition(target, options.path, _.isNil(options.authenticate) ? true : options.authenticate, _.isNil(options.roles) ? [] : options.roles, options.data, PlaceComponent.getRouteParameters(target), (options.children || []).map(c => PlaceComponent.getDefinition(c))));
9
9
  }
10
10
  else {
11
11
  lang.illegalState(`${target} must extend PlaceComponent to use the @Place decorator`);
@@ -1 +1 @@
1
- {"version":3,"file":"place.decorator.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,UAAU,KAAK,CAAC,OAAsB;IAC1C,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,IAAI,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE;YACtD,cAAc,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,eAAe,CACzD,MAAM,EACN,OAAO,CAAC,IAAI,EACZ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAC3D,OAAO,CAAC,IAAI,EACZ,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACzC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CACnE,CAAC,CAAC;SAEJ;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,yDAAyD,CAAC,CAAC;SACvF;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { Constructable, lang } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { PlaceComponent } from './place-component';\nimport { PlaceDefinition } from './place-definition';\n\nexport function Place(options: Place.Options) {\n return (target: Function) => {\n if (PlaceComponent.isPlaceComponentConstructor(target)) {\n PlaceComponent.injectDefinition(target, new PlaceDefinition(\n target,\n options.path,\n _.isNil(options.authenticate) ? true : options.authenticate,\n options.data,\n PlaceComponent.getRouteParameters(target),\n (options.children || []).map(c => PlaceComponent.getDefinition(c))\n ));\n\n } else {\n lang.illegalState(`${target} must extend PlaceComponent to use the @Place decorator`);\n }\n };\n}\n\nexport namespace Place {\n\n export interface Options {\n path: string,\n data?: { [key: string]: any }, // defaults to true\n authenticate?: boolean, // defaults to true\n children?: Constructable<PlaceComponent>[]\n defaultChild?: Constructable<PlaceComponent>\n }\n\n}\n\n"]}
1
+ {"version":3,"file":"place.decorator.js","sourceRoot":"","sources":["../../../../../../libs/angular-ui-powerups/src/lib/place/place.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,UAAU,KAAK,CAAC,OAAsB;IAC1C,OAAO,CAAC,MAAgB,EAAE,EAAE;QAC1B,IAAI,cAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE;YACtD,cAAc,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,eAAe,CACzD,MAAM,EACN,OAAO,CAAC,IAAI,EACZ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAC3D,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAC3C,OAAO,CAAC,IAAI,EACZ,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACzC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CACnE,CAAC,CAAC;SAEJ;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,yDAAyD,CAAC,CAAC;SACvF;IACH,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { Constructable, lang } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { PlaceComponent } from './place-component';\nimport { PlaceDefinition } from './place-definition';\n\nexport function Place(options: Place.Options) {\n return (target: Function) => {\n if (PlaceComponent.isPlaceComponentConstructor(target)) {\n PlaceComponent.injectDefinition(target, new PlaceDefinition(\n target,\n options.path,\n _.isNil(options.authenticate) ? true : options.authenticate,\n _.isNil(options.roles) ? [] : options.roles,\n options.data,\n PlaceComponent.getRouteParameters(target),\n (options.children || []).map(c => PlaceComponent.getDefinition(c))\n ));\n\n } else {\n lang.illegalState(`${target} must extend PlaceComponent to use the @Place decorator`);\n }\n };\n}\n\nexport namespace Place {\n\n export interface Options {\n path: string,\n data?: { [key: string]: any }, // defaults to true\n authenticate?: boolean, // defaults to true\n roles?: string[], // defaults to empty array\n children?: Constructable<PlaceComponent>[]\n defaultChild?: Constructable<PlaceComponent>\n }\n\n}\n\n"]}
@@ -128,6 +128,25 @@ class AupInput extends PageElement {
128
128
  AupInput.TextAreaInput = TextAreaInput;
129
129
  })(AupInput || (AupInput = {}));
130
130
 
131
+ class AupNavigation extends PageElement {
132
+ static create(parent, selector) {
133
+ const rootElementAccessor = () => parent.element().find(selector);
134
+ return new AupNavigation(rootElementAccessor);
135
+ }
136
+ click(label) {
137
+ return super.click(label);
138
+ }
139
+ face(label) {
140
+ return AupCommandFace.create(this, { text: () => label });
141
+ }
142
+ shouldHaveLink(label) {
143
+ this.face(label).shouldBeVisible();
144
+ }
145
+ shouldNotHaveLink(label) {
146
+ this.face(label).shouldNotBeVisible();
147
+ }
148
+ }
149
+
131
150
  var Section;
132
151
  (function (Section) {
133
152
  function Mixin$1(Base) {
@@ -157,6 +176,12 @@ var Section;
157
176
  aupCommand(face) {
158
177
  return AupCommand.create(this, face);
159
178
  }
179
+ aupTabbedNavigation() {
180
+ return AupNavigation.create(this, 'aup-tabbed-place-navigation');
181
+ }
182
+ aupSideNavigation() {
183
+ return AupNavigation.create(this, 'aup-list-place-nav');
184
+ }
160
185
  };
161
186
  }
162
187
  Section.Mixin = Mixin$1;
@@ -174,9 +199,12 @@ class Page extends PageElement {
174
199
  return cy.get(this.rootElementSelector);
175
200
  }
176
201
  visit() {
177
- cy.visit(this.path);
202
+ this.tryAndVisit();
178
203
  this.shouldBeActive();
179
204
  }
205
+ tryAndVisit() {
206
+ cy.visit(this.path);
207
+ }
180
208
  shouldHaveActivityIds(...ids) {
181
209
  cy.location('search').should('contain', `?aup-interactions=${ids.join('--')}`);
182
210
  }
@@ -184,6 +212,12 @@ class Page extends PageElement {
184
212
  cy.location('search').should('not.contain', `?aup-interactions`);
185
213
  }
186
214
  shouldBeActive(options) {
215
+ // Note: cy.window() doesn't return a promise... it's a chainable.
216
+ cy.window().then(window => {
217
+ cy['waitUntil'](() => {
218
+ return window['aup.PlaceRouter'] && !window['aup.PlaceRouter'].isNavigating();
219
+ });
220
+ });
187
221
  const bits = [this.path];
188
222
  // TODO: add support for parameter names...
189
223
  if (options && options.withParameters) {
@@ -242,5 +276,5 @@ class AupToolBar extends PageElement {
242
276
  * Generated bundle index. Do not edit.
243
277
  */
244
278
 
245
- export { AupCommand, AupCommandFace, AupCommandGroup, AupInput, AupMoreMenu, AupPopupMenu, AupToolBar, Button, Page, PageElement, Section };
279
+ export { AupCommand, AupCommandFace, AupCommandGroup, AupInput, AupMoreMenu, AupNavigation, AupPopupMenu, AupToolBar, Button, Page, PageElement, Section };
246
280
  //# sourceMappingURL=coolon-angular-ui-powerups-cypress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coolon-angular-ui-powerups-cypress.js","sources":["../../../../libs/angular-ui-powerups/cypress/src/page-element.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command-face.ts","../../../../libs/angular-ui-powerups/cypress/src/components/button.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-input.ts","../../../../libs/angular-ui-powerups/cypress/src/section.ts","../../../../libs/angular-ui-powerups/cypress/src/page.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command-group.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-more-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-popup-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-tool-bar.ts","../../../../libs/angular-ui-powerups/cypress/src/exports.ts","../../../../libs/angular-ui-powerups/cypress/src/coolon-angular-ui-powerups-cypress.ts"],"sourcesContent":["import Chainable = Cypress.Chainable;\n\nexport class PageElement {\n constructor(readonly rootElementAccessor?: () => Cypress.Chainable<JQuery>) {\n }\n\n element(): Chainable<JQuery> {\n return this.rootElementAccessor ? this.rootElementAccessor() : undefined;\n }\n\n click(text?: string) {\n text ? this.element().contains(text).click() : this.element().click();\n }\n\n get should() {\n return this.element().should;\n }\n\n shouldBeVisible() {\n this.should(\"be.visible\");\n }\n\n shouldNotBeVisible() {\n this.should(\"not.be.visible\");\n }\n}\n","import { PageElement } from '../page-element';\nimport { Types } from './types';\n\ntype ElementFinder = () => Cypress.Chainable<JQuery<HTMLElement>>\n\nexport class AupCommandFace extends PageElement {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n const parentFinder: ElementFinder = () => parent.element();\n const rootElementAccessor = this.createFinder(parentFinder, face);\n return new AupCommandFace(rootElementAccessor);\n }\n\n static createFinder(parent: ElementFinder, face: Types.CommandFace) {\n // AOT barfs if we return a lambda\n const finder = () => face.text ?\n parent().contains(`aup-command-face`, face.text()) :\n face.icon ?\n parent().find(`aup-icon[ng-reflect-icon=${face.icon()}]`).closest('aup-command-face') :\n undefined;\n return finder;\n }\n}\n\n","import { PageElement } from '../page-element';\n\nexport class Button extends PageElement {\n\n click() {\n return this.element().click();\n }\n\n shouldBeDisabled() {\n this.should(\"be.disabled\");\n // this.should(\"have.css\", \"color\", \"rgba(0,0,0,0.26)\")\n }\n\n}\n","import { Types } from './types';\nimport { PageElement } from '../page-element';\nimport { AupCommandFace } from './aup-command-face';\nimport { Button } from './button';\n\nexport class AupCommand extends Button {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n const parentFinder = () => parent.element().find('aup-command');\n const findFace = AupCommandFace.createFinder(parentFinder, face);\n const commandFinder = () => findFace().closest(\"aup-command\");\n return new AupCommand(commandFinder);\n }\n\n get should() {\n return this.element().find('button').should\n }\n\n}\n\n","import { PageElement } from '../page-element';\n\nexport abstract class AupInput<T> extends PageElement {\n\n label() {\n return this.element().find('label');\n }\n\n hint() {\n return this.element().find('mat-hint');\n }\n\n error() {\n return this.element().find('mat-error');\n }\n\n get labelShould() {\n return this.label().should\n }\n\n get hintShould() {\n return this.hint().should\n }\n\n get errorShould() {\n return this.error().should\n }\n\n labelShouldBe(text: string) {\n return this.labelShould(\"have.text\", text);\n }\n\n hintShouldBe(text: string) {\n return this.hintShould(\"have.text\", text);\n }\n\n errorShouldBe(text: string) {\n return this.errorShould(\"have.text\", text);\n }\n\n abstract clear();\n\n abstract setValue(value: T);\n\n}\n\nexport namespace AupInput {\n export class HtmlInput<T> extends AupInput<T> {\n input() {\n return this.element().find('input');\n }\n\n clear() {\n this.input().clear();\n }\n\n setValue(value: T) {\n const input = this.input();\n input.clear();\n input.type(`${value}`);\n this.input().should('have.value', `${value}`);\n }\n\n get should() {\n return this.input().should;\n }\n\n }\n\n export class TextAreaInput<T> extends AupInput<T> {\n\n get should() {\n return this.input().should;\n }\n\n input() {\n return this.element().find('textarea');\n }\n\n clear() {\n this.input().clear();\n }\n\n setValue(value: T) {\n const input = this.input();\n input.clear();\n input.type(`${value}`);\n this.input().should('have.value', value);\n }\n }\n\n}\n","import { Constructable } from '@coolon/pectin';\nimport { Mixin as CreateMixin } from '@coolon/typescript-utilities';\nimport { AupCommand } from './components/aup-command';\nimport { AupInput } from './components/aup-input';\nimport { Button } from './components/button';\nimport { Types } from './components/types';\nimport { PageElement } from './page-element';\n\nexport interface Section {\n section<T extends object>(selector: string, section: (section: Section) => T): T & PageElement;\n\n contains(text: string): PageElement\n\n button(text: string): Button;\n\n aupStringInput(selector?: string): AupInput<string>;\n\n aupTextInput(selector?: string): AupInput<string>;\n\n aupPasswordInput(selector?: string): AupInput<string>;\n\n aupNumberInput(selector?: string): AupInput<number>;\n\n aupCommand(face: Types.CommandFace): AupCommand;\n\n // aupToolbar<T extends object>(builder: () => T): AupToolBar & T\n //\n // aupToolbar<T extends object>(selector: string, builder: () => T): AupToolBar & T\n //\n // aupToolbar<T extends object>(selectorOrBuilder: string | (() => T), builder?: () => T): AupToolBar & T\n //\n // aupPopupMenu<T extends object>(face: CommandFace, builder: () => T): AupPopupMenu & T\n\n}\n\n\nexport namespace Section {\n\n export function Mixin<BC extends Constructable<PageElement>>(Base: BC) {\n\n return class extends Base implements Section {\n\n section<T extends object>(selector: string, section: (section: Section) => T): T & PageElement {\n const impl = new Impl(() => this.element().find(selector));\n return CreateMixin.createProxy(section(impl), impl);\n }\n\n contains(text: string): PageElement {\n return new PageElement(() => this.element().contains(text));\n }\n\n button(text: string): Button {\n return new Button(() => this.element().contains(`button`, text));\n }\n\n aupStringInput(selector?: string): AupInput<string> {\n return new AupInput.HtmlInput(() => this.element().find(selector ?? 'aup-string-input'));\n }\n\n aupTextInput(selector?: string): AupInput<string> {\n return new AupInput.TextAreaInput(() => this.element().find(selector ?? 'aup-text-input'));\n }\n\n aupPasswordInput(selector?: string): AupInput<string> {\n return new AupInput.HtmlInput(() => this.element().find(selector ?? 'aup-password-input'));\n }\n\n aupNumberInput(selector?: string): AupInput<number> {\n return new AupInput.HtmlInput(() => this.element().find(selector ?? 'aup-number-input'));\n }\n\n aupCommand(face: Types.CommandFace): AupCommand {\n return AupCommand.create(this, face);\n }\n\n // aupToolbar<T extends object>(builder: () => T): AupToolBar\n // aupToolbar<T extends object>(selector: string, builder: () => T): AupToolBar\n // aupToolbar<T extends object>(selectorOrBuilder: string | (() => T), builder?: () => T): AupToolBar {\n // return lang.notImplemented();\n // }\n //\n // aupPopupMenu<T extends object>(face: CommandFace, builder: () => T): AupPopupMenu & T {\n // return lang.notImplemented();\n // }\n //\n // aupMoreMenu<T extends object>(builder: () => T): AupPopupMenu & T {\n // return lang.notImplemented();\n // }\n\n };\n }\n\n class Impl extends Mixin(PageElement) {\n }\n\n\n}\n","import { Mixin } from '@coolon/typescript-utilities';\nimport { PageElement } from './page-element';\nimport { Section } from './section';\n\nexport class Page extends PageElement {\n\n protected rootElementSelector = 'body';\n\n constructor(readonly path: string) {\n super();\n }\n\n element(): Cypress.Chainable<JQuery<HTMLElement>> {\n return cy.get(this.rootElementSelector);\n }\n\n visit() {\n cy.visit(this.path);\n this.shouldBeActive();\n }\n\n shouldHaveActivityIds(...ids: string[]) {\n cy.location('search').should('contain', `?aup-interactions=${ids.join('--')}`);\n }\n\n shouldNotHaveActivityIds() {\n cy.location('search').should('not.contain', `?aup-interactions`);\n }\n\n shouldBeActive(options?: { withTitle?: string, withActivities?: string[], withParameters?: boolean }) {\n const bits = [this.path];\n // TODO: add support for parameter names...\n if (options && options.withParameters) {\n bits.push(`;([^\\?]+)`);\n }\n if (options && options.withActivities) {\n bits.push(`\\?aup-interactions=${options.withActivities.join('--')})`);\n }\n\n cy.location('pathname').should('match', new RegExp(`^${bits.join('')}$`));\n\n if (options && options.withTitle) {\n cy.title().should('eq', options.withTitle);\n }\n }\n\n}\n\n\nexport namespace Page {\n\n export function create<T extends object>(path: string, page: (page: Builder) => T): T & Page {\n const builder = new Builder(path);\n return Mixin.createProxy(page(builder), builder) as T & Page;\n }\n\n export class Builder extends Section.Mixin(Page) {\n }\n\n}\n","import { PageElement } from '../page-element';\n\nexport class AupCommandGroup extends PageElement {\n\n}\n","import { PageElement } from '../page-element';\n\nexport class AupMoreMenu extends PageElement {\n\n static create(parent: PageElement) {\n const finder = () => parent.element().contains('aup-more-menu');\n return new AupMoreMenu(finder);\n }\n}\n","import { PageElement } from '../page-element';\nimport { AupCommandFace } from './aup-command-face';\nimport { Types } from './types';\n\nexport class AupPopupMenu extends PageElement {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n const faceFinder = AupCommandFace.createFinder(() => parent.element(), face);\n const buttonFinder = () => faceFinder().closest('button');\n return new AupPopupMenu(buttonFinder);\n }\n}\n","\nimport { PageElement } from '../page-element';\nimport { Types } from './types';\n\nexport class AupToolBar extends PageElement {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n // const findFace = AupCommandFace.createFinder(() => parent.element(), face)\n // return new AupCommandGroup(() => findFace().closest('button'));\n }\n}\n","/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./page-element\";\nexport * from \"./page\";\nexport * from \"./section\";\nexport * from \"./components/aup-command-face\";\nexport * from \"./components/aup-command-group\";\nexport * from \"./components/aup-command\";\nexport * from \"./components/aup-input\";\nexport * from \"./components/aup-more-menu\";\nexport * from \"./components/aup-popup-menu\";\nexport * from \"./components/aup-tool-bar\";\nexport * from \"./components/button\";\nexport * from \"./components/types\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './exports';\n"],"names":["Mixin","CreateMixin"],"mappings":"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"}
1
+ {"version":3,"file":"coolon-angular-ui-powerups-cypress.js","sources":["../../../../libs/angular-ui-powerups/cypress/src/page-element.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command-face.ts","../../../../libs/angular-ui-powerups/cypress/src/components/button.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-input.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-navigation.ts","../../../../libs/angular-ui-powerups/cypress/src/section.ts","../../../../libs/angular-ui-powerups/cypress/src/page.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-command-group.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-more-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-popup-menu.ts","../../../../libs/angular-ui-powerups/cypress/src/components/aup-tool-bar.ts","../../../../libs/angular-ui-powerups/cypress/src/exports.ts","../../../../libs/angular-ui-powerups/cypress/src/coolon-angular-ui-powerups-cypress.ts"],"sourcesContent":["import Chainable = Cypress.Chainable;\n\nexport class PageElement {\n constructor(readonly rootElementAccessor?: () => Cypress.Chainable<JQuery>) {\n }\n\n element(): Chainable<JQuery> {\n return this.rootElementAccessor ? this.rootElementAccessor() : undefined;\n }\n\n click(text?: string) {\n text ? this.element().contains(text).click() : this.element().click();\n }\n\n get should() {\n return this.element().should;\n }\n\n shouldBeVisible() {\n this.should(\"be.visible\");\n }\n\n shouldNotBeVisible() {\n this.should(\"not.be.visible\");\n }\n}\n","import { PageElement } from '../page-element';\nimport { Types } from './types';\n\ntype ElementFinder = () => Cypress.Chainable<JQuery<HTMLElement>>\n\nexport class AupCommandFace extends PageElement {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n const parentFinder: ElementFinder = () => parent.element();\n const rootElementAccessor = this.createFinder(parentFinder, face);\n return new AupCommandFace(rootElementAccessor);\n }\n\n static createFinder(parent: ElementFinder, face: Types.CommandFace) {\n // AOT barfs if we return a lambda\n const finder = () => face.text ?\n parent().contains(`aup-command-face`, face.text()) :\n face.icon ?\n parent().find(`aup-icon[ng-reflect-icon=${face.icon()}]`).closest('aup-command-face') :\n undefined;\n return finder;\n }\n}\n\n","import { PageElement } from '../page-element';\n\nexport class Button extends PageElement {\n\n click() {\n return this.element().click();\n }\n\n shouldBeDisabled() {\n this.should(\"be.disabled\");\n // this.should(\"have.css\", \"color\", \"rgba(0,0,0,0.26)\")\n }\n\n}\n","import { Types } from './types';\nimport { PageElement } from '../page-element';\nimport { AupCommandFace } from './aup-command-face';\nimport { Button } from './button';\n\nexport class AupCommand extends Button {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n const parentFinder = () => parent.element().find('aup-command');\n const findFace = AupCommandFace.createFinder(parentFinder, face);\n const commandFinder = () => findFace().closest(\"aup-command\");\n return new AupCommand(commandFinder);\n }\n\n get should() {\n return this.element().find('button').should\n }\n\n}\n\n","import { PageElement } from '../page-element';\n\nexport abstract class AupInput<T> extends PageElement {\n\n label() {\n return this.element().find('label');\n }\n\n hint() {\n return this.element().find('mat-hint');\n }\n\n error() {\n return this.element().find('mat-error');\n }\n\n get labelShould() {\n return this.label().should\n }\n\n get hintShould() {\n return this.hint().should\n }\n\n get errorShould() {\n return this.error().should\n }\n\n labelShouldBe(text: string) {\n return this.labelShould(\"have.text\", text);\n }\n\n hintShouldBe(text: string) {\n return this.hintShould(\"have.text\", text);\n }\n\n errorShouldBe(text: string) {\n return this.errorShould(\"have.text\", text);\n }\n\n abstract clear();\n\n abstract setValue(value: T);\n\n}\n\nexport namespace AupInput {\n export class HtmlInput<T> extends AupInput<T> {\n input() {\n return this.element().find('input');\n }\n\n clear() {\n this.input().clear();\n }\n\n setValue(value: T) {\n const input = this.input();\n input.clear();\n input.type(`${value}`);\n this.input().should('have.value', `${value}`);\n }\n\n get should() {\n return this.input().should;\n }\n\n }\n\n export class TextAreaInput<T> extends AupInput<T> {\n\n get should() {\n return this.input().should;\n }\n\n input() {\n return this.element().find('textarea');\n }\n\n clear() {\n this.input().clear();\n }\n\n setValue(value: T) {\n const input = this.input();\n input.clear();\n input.type(`${value}`);\n this.input().should('have.value', value);\n }\n }\n\n}\n","import { PageElement } from '../page-element';\nimport { AupCommandFace } from './aup-command-face';\n\nexport class AupNavigation extends PageElement {\n\n static create(parent: PageElement, selector: string) {\n const rootElementAccessor = () => parent.element().find(selector);\n return new AupNavigation(rootElementAccessor);\n }\n\n click(label: string) {\n return super.click(label);\n }\n\n face(label: string): AupCommandFace {\n return AupCommandFace.create(this, { text: () => label });\n }\n\n shouldHaveLink(label: string) {\n this.face(label).shouldBeVisible();\n }\n\n shouldNotHaveLink(label: string) {\n this.face(label).shouldNotBeVisible();\n }\n}\n","import { Constructable } from '@coolon/pectin';\nimport { Mixin as CreateMixin } from '@coolon/typescript-utilities';\nimport { AupCommand } from './components/aup-command';\nimport { AupInput } from './components/aup-input';\nimport { AupNavigation } from './components/aup-navigation';\nimport { Button } from './components/button';\nimport { Types } from './components/types';\nimport { PageElement } from './page-element';\n\nexport interface Section {\n section<T extends object>(selector: string, section: (section: Section) => T): T & PageElement;\n\n contains(text: string): PageElement\n\n button(text: string): Button;\n\n aupStringInput(selector?: string): AupInput<string>;\n\n aupTextInput(selector?: string): AupInput<string>;\n\n aupPasswordInput(selector?: string): AupInput<string>;\n\n aupNumberInput(selector?: string): AupInput<number>;\n\n aupCommand(face: Types.CommandFace): AupCommand;\n\n // aupToolbar<T extends object>(builder: () => T): AupToolBar & T\n //\n // aupToolbar<T extends object>(selector: string, builder: () => T): AupToolBar & T\n //\n // aupToolbar<T extends object>(selectorOrBuilder: string | (() => T), builder?: () => T): AupToolBar & T\n //\n // aupPopupMenu<T extends object>(face: CommandFace, builder: () => T): AupPopupMenu & T\n\n aupTabbedNavigation<T extends object>(): AupNavigation;\n aupSideNavigation<T extends object>(): AupNavigation;\n\n}\n\n\nexport namespace Section {\n\n export function Mixin<BC extends Constructable<PageElement>>(Base: BC) {\n\n return class extends Base implements Section {\n\n section<T extends object>(selector: string, section: (section: Section) => T): T & PageElement {\n const impl = new Impl(() => this.element().find(selector));\n return CreateMixin.createProxy(section(impl), impl);\n }\n\n contains(text: string): PageElement {\n return new PageElement(() => this.element().contains(text));\n }\n\n button(text: string): Button {\n return new Button(() => this.element().contains(`button`, text));\n }\n\n aupStringInput(selector?: string): AupInput<string> {\n return new AupInput.HtmlInput(() => this.element().find(selector ?? 'aup-string-input'));\n }\n\n aupTextInput(selector?: string): AupInput<string> {\n return new AupInput.TextAreaInput(() => this.element().find(selector ?? 'aup-text-input'));\n }\n\n aupPasswordInput(selector?: string): AupInput<string> {\n return new AupInput.HtmlInput(() => this.element().find(selector ?? 'aup-password-input'));\n }\n\n aupNumberInput(selector?: string): AupInput<number> {\n return new AupInput.HtmlInput(() => this.element().find(selector ?? 'aup-number-input'));\n }\n\n aupCommand(face: Types.CommandFace): AupCommand {\n return AupCommand.create(this, face);\n }\n\n aupTabbedNavigation<T extends object>(): AupNavigation {\n return AupNavigation.create(this, 'aup-tabbed-place-navigation');\n }\n\n aupSideNavigation<T extends object>(): AupNavigation {\n return AupNavigation.create(this, 'aup-list-place-nav');\n }\n\n\n // aupToolbar<T extends object>(builder: () => T): AupToolBar\n // aupToolbar<T extends object>(selector: string, builder: () => T): AupToolBar\n // aupToolbar<T extends object>(selectorOrBuilder: string | (() => T), builder?: () => T): AupToolBar {\n // return lang.notImplemented();\n // }\n //\n // aupPopupMenu<T extends object>(face: CommandFace, builder: () => T): AupPopupMenu & T {\n // return lang.notImplemented();\n // }\n //\n // aupMoreMenu<T extends object>(builder: () => T): AupPopupMenu & T {\n // return lang.notImplemented();\n // }\n\n };\n }\n\n class Impl extends Mixin(PageElement) {\n }\n\n\n}\n","import { Mixin } from '@coolon/typescript-utilities';\nimport { PageElement } from './page-element';\nimport { Section } from './section';\n\nexport class Page extends PageElement {\n\n protected rootElementSelector = 'body';\n\n constructor(readonly path: string) {\n super();\n }\n\n element(): Cypress.Chainable<JQuery<HTMLElement>> {\n return cy.get(this.rootElementSelector);\n }\n\n visit() {\n this.tryAndVisit();\n this.shouldBeActive();\n }\n\n tryAndVisit() {\n cy.visit(this.path);\n }\n\n shouldHaveActivityIds(...ids: string[]) {\n cy.location('search').should('contain', `?aup-interactions=${ids.join('--')}`);\n }\n\n shouldNotHaveActivityIds() {\n cy.location('search').should('not.contain', `?aup-interactions`);\n }\n\n shouldBeActive(options?: { withTitle?: string, withActivities?: string[], withParameters?: boolean }) {\n\n // Note: cy.window() doesn't return a promise... it's a chainable.\n cy.window().then(window => {\n cy['waitUntil'](() => {\n return window['aup.PlaceRouter'] && !window['aup.PlaceRouter'].isNavigating();\n });\n })\n\n const bits = [this.path];\n\n // TODO: add support for parameter names...\n if (options && options.withParameters) {\n bits.push(`;([^\\?]+)`);\n }\n if (options && options.withActivities) {\n bits.push(`\\?aup-interactions=${options.withActivities.join('--')})`);\n }\n\n cy.location('pathname').should('match', new RegExp(`^${bits.join('')}$`));\n\n if (options && options.withTitle) {\n cy.title().should('eq', options.withTitle);\n }\n }\n\n}\n\n\nexport namespace Page {\n\n export function create<T extends object>(path: string, page: (page: Builder) => T): T & Page {\n const builder = new Builder(path);\n return Mixin.createProxy(page(builder), builder) as T & Page;\n }\n\n export class Builder extends Section.Mixin(Page) {\n }\n\n}\n","import { PageElement } from '../page-element';\n\nexport class AupCommandGroup extends PageElement {\n\n}\n","import { PageElement } from '../page-element';\n\nexport class AupMoreMenu extends PageElement {\n\n static create(parent: PageElement) {\n const finder = () => parent.element().contains('aup-more-menu');\n return new AupMoreMenu(finder);\n }\n}\n","import { PageElement } from '../page-element';\nimport { AupCommandFace } from './aup-command-face';\nimport { Types } from './types';\n\nexport class AupPopupMenu extends PageElement {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n const faceFinder = AupCommandFace.createFinder(() => parent.element(), face);\n const buttonFinder = () => faceFinder().closest('button');\n return new AupPopupMenu(buttonFinder);\n }\n}\n","\nimport { PageElement } from '../page-element';\nimport { Types } from './types';\n\nexport class AupToolBar extends PageElement {\n\n static create(parent: PageElement, face: Types.CommandFace) {\n // const findFace = AupCommandFace.createFinder(() => parent.element(), face)\n // return new AupCommandGroup(() => findFace().closest('button'));\n }\n}\n","/**\n * @file Automatically generated by barrelsby.\n */\n\nexport * from \"./page-element\";\nexport * from \"./page\";\nexport * from \"./section\";\nexport * from \"./components/aup-command-face\";\nexport * from \"./components/aup-command-group\";\nexport * from \"./components/aup-command\";\nexport * from \"./components/aup-input\";\nexport * from \"./components/aup-more-menu\";\nexport * from \"./components/aup-navigation\";\nexport * from \"./components/aup-popup-menu\";\nexport * from \"./components/aup-tool-bar\";\nexport * from \"./components/button\";\nexport * from \"./components/types\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './exports';\n"],"names":["Mixin","CreateMixin"],"mappings":"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"}