@mtes-mct/monitor-ui 13.8.0 → 13.9.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [13.8.0](https://github.com/MTES-MCT/monitor-ui/compare/v13.7.4...v13.8.0) (2024-03-22)
2
+
3
+
4
+ ### Features
5
+
6
+ * **utils:** add getSelectedTreeOptionFromTreeOptionValue() ([551079a](https://github.com/MTES-MCT/monitor-ui/commit/551079a1be73698784f7540476bfa44e1a9d32f2))
7
+ * **utils:** rename getSelectedTreeOptionFromTreeOptionValue() to getSelectedOptionFromOptionValueInTree() ([12b918e](https://github.com/MTES-MCT/monitor-ui/commit/12b918e653a56cbd845c9003e1690ebf32ce70ec))
8
+
1
9
  ## [13.7.4](https://github.com/MTES-MCT/monitor-ui/compare/v13.7.3...v13.7.4) (2024-03-21)
2
10
 
3
11
 
package/cypress/index.js CHANGED
@@ -512,12 +512,71 @@ function pickCheckPickerOptions(fieldElement, values, label, force, delay) {
512
512
  const maybeSearchInput = rsuitePickerPopupElement.querySelector('input[role="searchbox"]');
513
513
  values.forEach((value)=>{
514
514
  if (maybeSearchInput) {
515
- cy.wrap(rsuitePickerPopupElement).find('input[role="searchbox"]').type(value, {
515
+ cy.wrap(rsuitePickerPopupElement).find('input[role="searchbox"]').clear().type(value, {
516
516
  delay,
517
517
  force
518
518
  }).wait(250);
519
519
  }
520
- cy.wrap(rsuitePickerPopupElement).find('[role="option"]').contains(value).scrollIntoView().click({
520
+ cy.wrap(rsuitePickerPopupElement).find('[role="option"]').contains(value).first().scrollIntoView().click({
521
+ force
522
+ });
523
+ });
524
+ // Close the picker popup by pressing the escape key
525
+ cy.get('body').type('{esc}', {
526
+ delay,
527
+ force
528
+ });
529
+ // TODO Create a util to handle the `fieldElement` re-creation cases.
530
+ // We to use a `wait` as a temporary fix to handle `fieldElement` re-creation cases.
531
+ cy.wait(250);
532
+ // cy.wrap(fieldElement).find('.rs-picker-popup').should('not.exist')
533
+ });
534
+ }
535
+
536
+ function pickMultiCascaderOptions(fieldElement, values, label, force, delay) {
537
+ Cypress.log({
538
+ consoleProps: ()=>({
539
+ 'Applied to': fieldElement,
540
+ Elements: 1
541
+ }),
542
+ name: 'pickMultiCascaderOptions'
543
+ });
544
+ cy.wrap(fieldElement).scrollIntoView({
545
+ offset: {
546
+ left: 0,
547
+ top: -100
548
+ }
549
+ });
550
+ // Clear the field if there is a clear button
551
+ const maybeClearButton = fieldElement.querySelector('.rs-stack > .rs-stack-item > .rs-picker-clean');
552
+ if (maybeClearButton) {
553
+ cy.wrap(fieldElement).find('.rs-stack > .rs-stack-item > .rs-picker-clean').click({
554
+ force
555
+ }).wait(250);
556
+ }
557
+ // If `values` is undefined, we don't need to select anything
558
+ if (!values) {
559
+ return;
560
+ }
561
+ cy.wrap(fieldElement).find('.rs-picker-toggle').click({
562
+ force
563
+ });
564
+ // Wait for the picker to open
565
+ cy.wrap(fieldElement).find('.rs-picker-popup').then(([rsuitePickerPopupElement])=>{
566
+ if (!rsuitePickerPopupElement) {
567
+ throwError(`Could not find '.rs-picker-popup' in in field with label "${label}". Did the picker open?`);
568
+ }
569
+ // Search for the value if there is a search input
570
+ const maybeSearchInput = rsuitePickerPopupElement.querySelector('input[role="searchbox"]');
571
+ if (!maybeSearchInput) {
572
+ throwError(throwError(`\`cy.fill()\` can't handle the MultiCascader with \`<label>\` "${label}" because it's not \`searchable\`.`));
573
+ }
574
+ values.forEach((value)=>{
575
+ cy.wrap(rsuitePickerPopupElement).find('input[role="searchbox"]').clear().type(value, {
576
+ delay,
577
+ force
578
+ }).wait(250);
579
+ cy.wrap(rsuitePickerPopupElement).find('[role="treeitem"]').contains(value).first().scrollIntoView().click({
521
580
  force
522
581
  });
523
582
  });
@@ -770,6 +829,12 @@ function fill(label, value, options = {}) {
770
829
  pickCheckPickerOptions(fieldElement, value, label, controlledOptions.force, controlledOptions.delay);
771
830
  return;
772
831
  // ---------------------------------------------------------------------
832
+ // MultiCascader
833
+ case fieldElement.classList.contains('Field-MultiCascader'):
834
+ assertStringArrayOrUndefined(value, 'MultiCascader');
835
+ pickMultiCascaderOptions(fieldElement, value, label, controlledOptions.force, controlledOptions.delay);
836
+ return;
837
+ // ---------------------------------------------------------------------
773
838
  // MultiSelect
774
839
  case fieldElement.classList.contains('Field-MultiSelect'):
775
840
  assertStringArrayOrUndefined(value, 'MultiSelect');
@@ -1 +1 @@
1
- {"version":3,"file":"CheckPicker.d.ts","sourceRoot":"","sources":["../../src/fields/CheckPicker.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAoC,KAAK,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,QAAQ,CAAA;AAS1G,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAKxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,MAAM,gBAAgB,CAAC,WAAW,SAAS,eAAe,GAAG,MAAM,IAAI,IAAI,CAC/E,sBAAsB,CAAC,MAAM,CAAC,EAC9B,IAAI,GAAG,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,IAAI,GAAG,UAAU,GAAG,gBAAgB,GAAG,OAAO,GAAG,UAAU,CAC3G,GAAG;IACF,YAAY,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IAChD,+EAA+E;IAC/E,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1C,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;IACrE,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IAC9C,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,KAAK,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAA;CAClC,CAAA;AACD,wBAAgB,WAAW,CAAC,WAAW,SAAS,eAAe,GAAG,MAAM,EAAE,EACxE,SAAS,EACT,YAAY,EACZ,0BAA8B,EAC9B,QAAgB,EAChB,KAAK,EACL,oBAA4B,EAC5B,aAAqB,EACrB,OAAe,EACf,UAAkB,EAClB,aAAqB,EACrB,uBAA+B,EAC/B,KAAK,EACL,QAAQ,EACR,OAAO,EACP,cAAc,EACd,UAAU,EACV,QAAgB,EAChB,UAAkB,EAClB,KAAK,EACL,KAAK,EACL,GAAG,aAAa,EACjB,EAAE,gBAAgB,CAAC,WAAW,CAAC,2CAyG/B"}
1
+ {"version":3,"file":"CheckPicker.d.ts","sourceRoot":"","sources":["../../src/fields/CheckPicker.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAoC,KAAK,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,QAAQ,CAAA;AAS1G,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAKxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3C,MAAM,MAAM,gBAAgB,CAAC,WAAW,SAAS,eAAe,GAAG,MAAM,IAAI,IAAI,CAC/E,sBAAsB,CAAC,MAAM,CAAC,EAC9B,IAAI,GAAG,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,IAAI,GAAG,UAAU,GAAG,gBAAgB,GAAG,OAAO,GAAG,UAAU,CAC3G,GAAG;IACF,YAAY,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAA;IAChD,+EAA+E;IAC/E,0BAA0B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC1C,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAChC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACnC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,SAAS,KAAK,UAAU,CAAC,IAAI,CAAC,CAAA;IACrE,cAAc,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IAC9C,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,KAAK,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAA;CAClC,CAAA;AACD,wBAAgB,WAAW,CAAC,WAAW,SAAS,eAAe,GAAG,MAAM,EAAE,EACxE,SAAS,EACT,YAAY,EACZ,0BAA8B,EAC9B,QAAgB,EAChB,KAAK,EACL,oBAA4B,EAC5B,aAAqB,EACrB,OAAe,EACf,UAAkB,EAClB,aAAqB,EACrB,uBAA+B,EAC/B,KAAK,EACL,QAAQ,EACR,OAAO,EACP,cAAc,EACd,UAAU,EACV,QAAgB,EAChB,UAAkB,EAClB,KAAK,EACL,KAAK,EACL,GAAG,aAAa,EACjB,EAAE,gBAAgB,CAAC,WAAW,CAAC,2CA0G/B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mtes-mct/monitor-ui",
3
3
  "description": "Common React components, hooks, utilities and CSS stylesheets for MonitorFish, MonitorEnv and RapportNav.",
4
- "version": "13.8.0",
4
+ "version": "13.9.0",
5
5
  "license": "AGPL-3.0",
6
6
  "type": "module",
7
7
  "engines": {