@provoly/dashboard 1.3.1 → 1.3.3

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 (42) hide show
  1. package/README.md +1 -1
  2. package/esm2022/import/i18n/en.translations.mjs +4 -4
  3. package/esm2022/import/i18n/fr.translations.mjs +4 -4
  4. package/esm2022/lib/core/access/access.service.mjs +4 -1
  5. package/esm2022/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.mjs +13 -8
  6. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +33 -42
  7. package/esm2022/presentation/components/presentation.component.mjs +4 -8
  8. package/esm2022/presentation/i18n/en.translations.mjs +3 -2
  9. package/esm2022/presentation/i18n/fr.translations.mjs +3 -2
  10. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +17 -9
  11. package/esm2022/toolbox/components/toolbox.component.mjs +3 -3
  12. package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +13 -9
  13. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +3 -3
  14. package/esm2022/widgets/widget-table/i18n/en.translations.mjs +10 -2
  15. package/esm2022/widgets/widget-table/i18n/fr.translations.mjs +10 -2
  16. package/esm2022/widgets/widget-table/style/css.component.mjs +2 -2
  17. package/fesm2022/provoly-dashboard-import.mjs +6 -6
  18. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  19. package/fesm2022/provoly-dashboard-presentation.mjs +39 -50
  20. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  21. package/fesm2022/provoly-dashboard-restitution.mjs +16 -8
  22. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  23. package/fesm2022/provoly-dashboard-toolbox.mjs +25 -21
  24. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  25. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +22 -6
  26. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  27. package/fesm2022/provoly-dashboard.mjs +15 -7
  28. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  29. package/import/i18n/en.translations.d.ts +3 -3
  30. package/import/i18n/fr.translations.d.ts +3 -3
  31. package/lib/core/access/access.service.d.ts +3 -0
  32. package/lib/dashboard/components/widgets/datasource-selector/datasource-selector.component.d.ts +3 -3
  33. package/package.json +1 -1
  34. package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +3 -1
  35. package/presentation/components/presentation.component.d.ts +4 -8
  36. package/presentation/i18n/en.translations.d.ts +1 -0
  37. package/presentation/i18n/fr.translations.d.ts +1 -0
  38. package/restitution/components/restitution-catalog/restitution-catalog.component.d.ts +5 -3
  39. package/toolbox/shared/presentation-form/presentation-form.component.d.ts +3 -2
  40. package/widgets/widget-table/i18n/en.translations.d.ts +8 -0
  41. package/widgets/widget-table/i18n/fr.translations.d.ts +8 -0
  42. package/widgets/widget-table/style/_o-widget-table.scss +4 -0
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
1
  Cette librarie permet d'intégrer des tableaux de bord multifenêtres dans votre application.
2
2
 
3
- La documentation est disponible [ici](https://documentation.dev.provoly.net/provoly-dashboard/main/index.html).
3
+ La documentation est disponible [ici](https://documentation.provoly.net/provoly-dashboard/main/index.html).
@@ -26,12 +26,12 @@ export const enTranslations = {
26
26
  code: {
27
27
  UNRECOGNIZED: 'Provided file contains a column "{{name}}", which is not present in the chosen dataset',
28
28
  FILE_MANDATORY: 'No file was provided',
29
- NB_ATTRIBUTES: 'The number of columns in the file does not match the number of attributes in the chosen dataset',
30
- CAST: 'Value {{name}} could not be casted to type "{{type}}"',
31
- ELASTIC_SEARCH: 'Elastic Search error: {{elasticError}}'
29
+ NO_ATTRIBUTES: 'No corresponding attribute found in uploaded file',
30
+ FORMAT: '"{{name}}": "{{receivedValue}}" could not be converted to type "{{type}}"',
31
+ STORAGE: 'Storage stack trace error: {{elasticError}}'
32
32
  },
33
33
  normalize: 'Standardize geographic shapes'
34
34
  }
35
35
  }
36
36
  };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2kxOG4vZW4udHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsYUFBYTtZQUNwQixhQUFhLEVBQUUsYUFBYTtZQUM1QixNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsZUFBZTtZQUMzQixZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLGNBQWMsRUFBRSxvQkFBb0I7WUFDcEMsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxPQUFPLEVBQUUsb0VBQW9FO1lBQzdFLFFBQVEsRUFBRSw2RUFBNkU7WUFDdkYsVUFBVSxFQUFFLGFBQWE7WUFDekIsYUFBYSxFQUFFLGdCQUFnQjtZQUMvQixlQUFlLEVBQUUscUNBQXFDO1lBQ3RELGVBQWUsRUFBRSxzQ0FBc0M7WUFDdkQsTUFBTSxFQUFFLFFBQVE7WUFDaEIsS0FBSyxFQUFFLDBCQUEwQjtZQUNqQyxTQUFTLEVBQUU7Z0JBQ1QsR0FBRyxFQUFFLHFEQUFxRDthQUMzRDtZQUNELElBQUksRUFBRSxpQkFBaUI7WUFDdkIsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixPQUFPLEVBQUUsU0FBUztZQUNsQixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLElBQUksRUFBRTtnQkFDSixZQUFZLEVBQUUsd0ZBQXdGO2dCQUN0RyxjQUFjLEVBQUUsc0JBQXNCO2dCQUN0QyxhQUFhLEVBQ1gsaUdBQWlHO2dCQUNuRyxJQUFJLEVBQUUsdURBQXVEO2dCQUM3RCxjQUFjLEVBQUUsd0NBQXdDO2FBQ3pEO1lBQ0QsU0FBUyxFQUFFLCtCQUErQjtTQUMzQztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlblRyYW5zbGF0aW9ucyA9IHtcbiAgJ0BwcnknOiB7XG4gICAgaW1wb3J0OiB7XG4gICAgICB0aXRsZTogJ0ltcG9ydCBkYXRhJyxcbiAgICAgIGRhdGFzZXRJbXBvcnQ6ICdJbXBvcnQgaW4gOicsXG4gICAgICBpbXBvcnQ6ICdJbXBvcnQnLFxuICAgICAgZXJyb3JUaXRsZTogJ0ltcG9ydCBmYWlsZWQnLFxuICAgICAgc3VjY2Vzc1RpdGxlOiAnSW1wb3J0IHN1Y2Nlc3NmdWwnLFxuICAgICAgdXBsb2FkVGl0bGV6aXA6ICdDaG9vc2UgYSAuemlwIGZpbGUnLFxuICAgICAgdXBsb2FkVGl0bGVjc3Y6ICdDaG9vc2UgYSAuY3N2IGZpbGUnLFxuICAgICAgd2FybmluZzogJ0ZpbGUgbXVzdCBiZSB1bmRlciAyR0IsIG9yIG11c3QgYmUgaW1wb3J0ZWQgdmlhIGRpcmVjdGx5IHZpYSBBUElzLicsXG4gICAgICB0b29MYXJnZTogJ0ZpbGUgaXMgdG9vIGxhcmdlICh7e2N1cnJlbnR9fSA+IDJHQiksIHBsZWFzZSB1c2UgQVBJcyB0byBpbXBvcnQgdGhpcyBmaWxlLicsXG4gICAgICBzZWxlY3RGaWxlOiAnU2VsZWN0IGZpbGUnLFxuICAgICAgaW1wb3J0ZWRMaW5lczogJ2ltcG9ydGVkIGxpbmVzJyxcbiAgICAgIGNvbnN1bHREYXRhc2V0MTogJ1RoZSBpbXBvcnQgaXMgaW4gcHJvZ3Jlc3MsIHNlZSB0aGUgJyxcbiAgICAgIGNvbnN1bHREYXRhc2V0MjogJyBkYXRhc2V0IHBhZ2UgdG8gY2hlY2sgaXRzIGNvbmRpdGlvbicsXG4gICAgICBlcnJvcnM6ICdlcnJvcnMnLFxuICAgICAgZXJyb3I6ICdFcnJvciBvbiBpbXBvcnQ6IHt7bXNnfX0nLFxuICAgICAgZXJyb3JDb2RlOiB7XG4gICAgICAgIDQwOTogJ0ltcG9ydCBhbHJlYWR5IGluIHByb2dyZXNzLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLidcbiAgICAgIH0sXG4gICAgICBsaW5lOiAnTGluZSB7e2xpbmV9fTogJyxcbiAgICAgIHdpdGhvdXRMaW5lOiAnR2xvYmFsIGVycm9yczogJyxcbiAgICAgIGRhdGFzZXQ6ICdEYXRhc2V0JyxcbiAgICAgIGZpbGVUeXBlOiAnU2VsZWN0IGZpbGUgdHlwZScsXG4gICAgICBjb2RlOiB7XG4gICAgICAgIFVOUkVDT0dOSVpFRDogJ1Byb3ZpZGVkIGZpbGUgY29udGFpbnMgYSBjb2x1bW4gXCJ7e25hbWV9fVwiLCB3aGljaCBpcyBub3QgcHJlc2VudCBpbiB0aGUgY2hvc2VuIGRhdGFzZXQnLFxuICAgICAgICBGSUxFX01BTkRBVE9SWTogJ05vIGZpbGUgd2FzIHByb3ZpZGVkJyxcbiAgICAgICAgTkJfQVRUUklCVVRFUzpcbiAgICAgICAgICAnVGhlIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBmaWxlIGRvZXMgbm90IG1hdGNoIHRoZSBudW1iZXIgb2YgYXR0cmlidXRlcyBpbiB0aGUgY2hvc2VuIGRhdGFzZXQnLFxuICAgICAgICBDQVNUOiAnVmFsdWUge3tuYW1lfX0gY291bGQgbm90IGJlIGNhc3RlZCB0byB0eXBlIFwie3t0eXBlfX1cIicsXG4gICAgICAgIEVMQVNUSUNfU0VBUkNIOiAnRWxhc3RpYyBTZWFyY2ggZXJyb3I6IHt7ZWxhc3RpY0Vycm9yfX0nXG4gICAgICB9LFxuICAgICAgbm9ybWFsaXplOiAnU3RhbmRhcmRpemUgZ2VvZ3JhcGhpYyBzaGFwZXMnXG4gICAgfVxuICB9XG59O1xuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4udHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2kxOG4vZW4udHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsYUFBYTtZQUNwQixhQUFhLEVBQUUsYUFBYTtZQUM1QixNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsZUFBZTtZQUMzQixZQUFZLEVBQUUsbUJBQW1CO1lBQ2pDLGNBQWMsRUFBRSxvQkFBb0I7WUFDcEMsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxPQUFPLEVBQUUsb0VBQW9FO1lBQzdFLFFBQVEsRUFBRSw2RUFBNkU7WUFDdkYsVUFBVSxFQUFFLGFBQWE7WUFDekIsYUFBYSxFQUFFLGdCQUFnQjtZQUMvQixlQUFlLEVBQUUscUNBQXFDO1lBQ3RELGVBQWUsRUFBRSxzQ0FBc0M7WUFDdkQsTUFBTSxFQUFFLFFBQVE7WUFDaEIsS0FBSyxFQUFFLDBCQUEwQjtZQUNqQyxTQUFTLEVBQUU7Z0JBQ1QsR0FBRyxFQUFFLHFEQUFxRDthQUMzRDtZQUNELElBQUksRUFBRSxpQkFBaUI7WUFDdkIsV0FBVyxFQUFFLGlCQUFpQjtZQUM5QixPQUFPLEVBQUUsU0FBUztZQUNsQixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLElBQUksRUFBRTtnQkFDSixZQUFZLEVBQUUsd0ZBQXdGO2dCQUN0RyxjQUFjLEVBQUUsc0JBQXNCO2dCQUN0QyxhQUFhLEVBQUUsbURBQW1EO2dCQUNsRSxNQUFNLEVBQUUsMkVBQTJFO2dCQUNuRixPQUFPLEVBQUUsNkNBQTZDO2FBQ3ZEO1lBQ0QsU0FBUyxFQUFFLCtCQUErQjtTQUMzQztLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlblRyYW5zbGF0aW9ucyA9IHtcbiAgJ0BwcnknOiB7XG4gICAgaW1wb3J0OiB7XG4gICAgICB0aXRsZTogJ0ltcG9ydCBkYXRhJyxcbiAgICAgIGRhdGFzZXRJbXBvcnQ6ICdJbXBvcnQgaW4gOicsXG4gICAgICBpbXBvcnQ6ICdJbXBvcnQnLFxuICAgICAgZXJyb3JUaXRsZTogJ0ltcG9ydCBmYWlsZWQnLFxuICAgICAgc3VjY2Vzc1RpdGxlOiAnSW1wb3J0IHN1Y2Nlc3NmdWwnLFxuICAgICAgdXBsb2FkVGl0bGV6aXA6ICdDaG9vc2UgYSAuemlwIGZpbGUnLFxuICAgICAgdXBsb2FkVGl0bGVjc3Y6ICdDaG9vc2UgYSAuY3N2IGZpbGUnLFxuICAgICAgd2FybmluZzogJ0ZpbGUgbXVzdCBiZSB1bmRlciAyR0IsIG9yIG11c3QgYmUgaW1wb3J0ZWQgdmlhIGRpcmVjdGx5IHZpYSBBUElzLicsXG4gICAgICB0b29MYXJnZTogJ0ZpbGUgaXMgdG9vIGxhcmdlICh7e2N1cnJlbnR9fSA+IDJHQiksIHBsZWFzZSB1c2UgQVBJcyB0byBpbXBvcnQgdGhpcyBmaWxlLicsXG4gICAgICBzZWxlY3RGaWxlOiAnU2VsZWN0IGZpbGUnLFxuICAgICAgaW1wb3J0ZWRMaW5lczogJ2ltcG9ydGVkIGxpbmVzJyxcbiAgICAgIGNvbnN1bHREYXRhc2V0MTogJ1RoZSBpbXBvcnQgaXMgaW4gcHJvZ3Jlc3MsIHNlZSB0aGUgJyxcbiAgICAgIGNvbnN1bHREYXRhc2V0MjogJyBkYXRhc2V0IHBhZ2UgdG8gY2hlY2sgaXRzIGNvbmRpdGlvbicsXG4gICAgICBlcnJvcnM6ICdlcnJvcnMnLFxuICAgICAgZXJyb3I6ICdFcnJvciBvbiBpbXBvcnQ6IHt7bXNnfX0nLFxuICAgICAgZXJyb3JDb2RlOiB7XG4gICAgICAgIDQwOTogJ0ltcG9ydCBhbHJlYWR5IGluIHByb2dyZXNzLCBwbGVhc2UgdHJ5IGFnYWluIGxhdGVyLidcbiAgICAgIH0sXG4gICAgICBsaW5lOiAnTGluZSB7e2xpbmV9fTogJyxcbiAgICAgIHdpdGhvdXRMaW5lOiAnR2xvYmFsIGVycm9yczogJyxcbiAgICAgIGRhdGFzZXQ6ICdEYXRhc2V0JyxcbiAgICAgIGZpbGVUeXBlOiAnU2VsZWN0IGZpbGUgdHlwZScsXG4gICAgICBjb2RlOiB7XG4gICAgICAgIFVOUkVDT0dOSVpFRDogJ1Byb3ZpZGVkIGZpbGUgY29udGFpbnMgYSBjb2x1bW4gXCJ7e25hbWV9fVwiLCB3aGljaCBpcyBub3QgcHJlc2VudCBpbiB0aGUgY2hvc2VuIGRhdGFzZXQnLFxuICAgICAgICBGSUxFX01BTkRBVE9SWTogJ05vIGZpbGUgd2FzIHByb3ZpZGVkJyxcbiAgICAgICAgTk9fQVRUUklCVVRFUzogJ05vIGNvcnJlc3BvbmRpbmcgYXR0cmlidXRlIGZvdW5kIGluIHVwbG9hZGVkIGZpbGUnLFxuICAgICAgICBGT1JNQVQ6ICdcInt7bmFtZX19XCI6IFwie3tyZWNlaXZlZFZhbHVlfX1cIiBjb3VsZCBub3QgYmUgY29udmVydGVkIHRvIHR5cGUgXCJ7e3R5cGV9fVwiJyxcbiAgICAgICAgU1RPUkFHRTogJ1N0b3JhZ2Ugc3RhY2sgdHJhY2UgZXJyb3I6IHt7ZWxhc3RpY0Vycm9yfX0nXG4gICAgICB9LFxuICAgICAgbm9ybWFsaXplOiAnU3RhbmRhcmRpemUgZ2VvZ3JhcGhpYyBzaGFwZXMnXG4gICAgfVxuICB9XG59O1xuIl19
@@ -27,12 +27,12 @@ export const frTranslations = {
27
27
  code: {
28
28
  UNRECOGNIZED: "Le fichier fourni contient une colonne «\u00A0{{name}}\u00A0», qui n'est pas présente dans le jeu de données choisi",
29
29
  FILE_MANDATORY: 'Aucun fichier fourni',
30
- NB_ATTRIBUTES: "Le nombre des colonnes dans le fichier fourni ne correspond pas au nombre d'attributs dans le jeu de données choisi",
31
- CAST: "La valeur «\u00A0{{name}}\u00A0», n'a pas pu être convertie en type «\u00A0{{type}}\u00A0»,",
32
- ELASTIC_SEARCH: 'Elastic Search stack trace error: {{elasticError}}'
30
+ NO_ATTRIBUTES: "Aucun attribut correspondant n'a été trouvé dans le fichier fourni",
31
+ FORMAT: "«\u00A0{{name}}\u00A0»: «\u00A0{{receivedValue}}\u00A0» n'a pas pu être convertie en type «\u00A0{{type}}\u00A0»",
32
+ STORAGE: 'Storage stack trace error: {{elasticError}}'
33
33
  },
34
34
  normalize: 'Normaliser les formes géographiques'
35
35
  }
36
36
  }
37
37
  };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2kxOG4vZnIudHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsbUJBQW1CO1lBQzFCLGFBQWEsRUFBRSxrQ0FBa0M7WUFDakQsTUFBTSxFQUFFLFVBQVU7WUFDbEIsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixZQUFZLEVBQUUsMEJBQTBCO1lBQ3hDLGNBQWMsRUFBRSx5QkFBeUI7WUFDekMsY0FBYyxFQUFFLHlCQUF5QjtZQUN6QyxPQUFPLEVBQ0wsK0lBQStJO1lBQ2pKLFFBQVEsRUFBRSxrR0FBa0c7WUFDNUcsVUFBVSxFQUFFLHlCQUF5QjtZQUNyQyxhQUFhLEVBQUUsb0JBQW9CO1lBQ25DLGVBQWUsRUFBRSw2REFBNkQ7WUFDOUUsZUFBZSxFQUFFLHlCQUF5QjtZQUMxQyxjQUFjLEVBQUUseUJBQXlCO1lBQ3pDLEtBQUssRUFBRSxrQ0FBa0M7WUFDekMsTUFBTSxFQUFFLFdBQVc7WUFDbkIsU0FBUyxFQUFFO2dCQUNULEdBQUcsRUFBRSxxREFBcUQ7YUFDM0Q7WUFDRCxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixRQUFRLEVBQUUsaUNBQWlDO1lBQzNDLElBQUksRUFBRTtnQkFDSixZQUFZLEVBQ1YscUhBQXFIO2dCQUN2SCxjQUFjLEVBQUUsc0JBQXNCO2dCQUN0QyxhQUFhLEVBQ1gscUhBQXFIO2dCQUN2SCxJQUFJLEVBQUUsNkZBQTZGO2dCQUNuRyxjQUFjLEVBQUUsb0RBQW9EO2FBQ3JFO1lBQ0QsU0FBUyxFQUFFLHFDQUFxQztTQUNqRDtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmclRyYW5zbGF0aW9ucyA9IHtcbiAgJ0BwcnknOiB7XG4gICAgaW1wb3J0OiB7XG4gICAgICB0aXRsZTogJ0ltcG9ydCBkZSBkb25uw6llcycsXG4gICAgICBkYXRhc2V0SW1wb3J0OiAnSW1wb3J0ZXIgZGFucyB1biBqZXUgZGUgZG9ubsOpZXM6JyxcbiAgICAgIGltcG9ydDogJ0ltcG9ydGVyJyxcbiAgICAgIGVycm9yVGl0bGU6IFwiTCdpbXBvcnQgYSDDqWNob3XDqVwiLFxuICAgICAgc3VjY2Vzc1RpdGxlOiAnSW1wb3J0IGRlIGRvbm7DqWVzIHLDqXVzc2knLFxuICAgICAgdXBsb2FkVGl0bGV6aXA6ICdDaG9pc2lyIHVuIGZpY2hpZXIgLnppcCcsXG4gICAgICB1cGxvYWRUaXRsZWNzdjogJ0Nob2lzaXIgdW4gZmljaGllciAuY3N2JyxcbiAgICAgIHdhcm5pbmc6XG4gICAgICAgICdBdHRlbnRpb24sIGxlIGZpY2hpZXIgbmUgZG9pdCBwYXMgZMOpcGFzc2VyIDJHQiBwb3VyIMOqdHJlIGludMOpZ3JlciB2aWEgY2V0IMOpY3Jhbi4gTGUgY2FzIMOpY2jDqWFudCwgdm90cmUgZmljaGllciBkZXZyYSDDqnRyZSBpbXBvcnTDqSB2aWEgbGVzIEFQSScsXG4gICAgICB0b29MYXJnZTogJ0ZpY2hpZXIgdHJvcCB2b2x1bWluZXV4ICh7e2N1cnJlbnR9fSA+IDJHQiksIHZldWlsbGV6IHV0aWxpc2VyIGxlcyBBUEkgcG91ciBpbXBvcnRlciBjZXMgZG9ubsOpZXMnLFxuICAgICAgc2VsZWN0RmlsZTogJ1PDqWxlY3Rpb25uZXIgdW4gZmljaGllcicsXG4gICAgICBpbXBvcnRlZExpbmVzOiAnbGlnbmVzIGltcG9ydMOpZShzKScsXG4gICAgICBjb25zdWx0RGF0YXNldDE6IFwiTCdpbXBvcnQgZXN0IGVuIGNvdXJzLCBjb25zdWx0ZXogbGEgcGFnZSBkdSBqZXUgZGUgZG9ubsOpZXMgXCIsXG4gICAgICBjb25zdWx0RGF0YXNldDI6ICcgcG91ciB2w6lyaWZpZXIgc29uIMOpdGF0JyxcbiAgICAgIHNoYXBlZmlsZVN0YXRlOiAnIHBvdXIgdsOpcmlmaWVyIHNvbiDDqXRhdCcsXG4gICAgICBlcnJvcjogXCJFcnJldXIgbG9ycyBkZSBsJ2ltcG9ydDoge3ttc2d9fVwiLFxuICAgICAgZXJyb3JzOiAnZXJyZXVyKHMpJyxcbiAgICAgIGVycm9yQ29kZToge1xuICAgICAgICA0MDk6ICdJbXBvcnQgZMOpasOgIGVuIGNvdXJzLCB2ZXVpbGxleiByw6llc3NheWVyIHBsdXMgdGFyZC4nXG4gICAgICB9LFxuICAgICAgbGluZTogJ0xpZ25lIHt7bGluZX19OiAnLFxuICAgICAgd2l0aG91dExpbmU6ICdFcnJldXJzIGdsb2JhbGVzOiAnLFxuICAgICAgZGF0YXNldDogJ0pldSBkZSBkb25uw6llcycsXG4gICAgICBmaWxlVHlwZTogJ1PDqWxlY3Rpb25uZXIgdW4gdHlwZSBkZSBmaWNoaWVyJyxcbiAgICAgIGNvZGU6IHtcbiAgICAgICAgVU5SRUNPR05JWkVEOlxuICAgICAgICAgIFwiTGUgZmljaGllciBmb3VybmkgY29udGllbnQgdW5lIGNvbG9ubmUgwqtcXHUwMEEwe3tuYW1lfX1cXHUwMEEwwrssIHF1aSBuJ2VzdCBwYXMgcHLDqXNlbnRlIGRhbnMgbGUgamV1IGRlIGRvbm7DqWVzIGNob2lzaVwiLFxuICAgICAgICBGSUxFX01BTkRBVE9SWTogJ0F1Y3VuIGZpY2hpZXIgZm91cm5pJyxcbiAgICAgICAgTkJfQVRUUklCVVRFUzpcbiAgICAgICAgICBcIkxlIG5vbWJyZSBkZXMgY29sb25uZXMgZGFucyBsZSBmaWNoaWVyIGZvdXJuaSBuZSBjb3JyZXNwb25kIHBhcyBhdSBub21icmUgZCdhdHRyaWJ1dHMgZGFucyBsZSBqZXUgZGUgZG9ubsOpZXMgY2hvaXNpXCIsXG4gICAgICAgIENBU1Q6IFwiTGEgdmFsZXVyIMKrXFx1MDBBMHt7bmFtZX19XFx1MDBBMMK7LCBuJ2EgcGFzIHB1IMOqdHJlIGNvbnZlcnRpZSBlbiB0eXBlIMKrXFx1MDBBMHt7dHlwZX19XFx1MDBBMMK7LFwiLFxuICAgICAgICBFTEFTVElDX1NFQVJDSDogJ0VsYXN0aWMgU2VhcmNoIHN0YWNrIHRyYWNlIGVycm9yOiB7e2VsYXN0aWNFcnJvcn19J1xuICAgICAgfSxcbiAgICAgIG5vcm1hbGl6ZTogJ05vcm1hbGlzZXIgbGVzIGZvcm1lcyBnw6lvZ3JhcGhpcXVlcydcbiAgICB9XG4gIH1cbn07XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvaW1wb3J0L2kxOG4vZnIudHJhbnNsYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRztJQUM1QixNQUFNLEVBQUU7UUFDTixNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsbUJBQW1CO1lBQzFCLGFBQWEsRUFBRSxrQ0FBa0M7WUFDakQsTUFBTSxFQUFFLFVBQVU7WUFDbEIsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixZQUFZLEVBQUUsMEJBQTBCO1lBQ3hDLGNBQWMsRUFBRSx5QkFBeUI7WUFDekMsY0FBYyxFQUFFLHlCQUF5QjtZQUN6QyxPQUFPLEVBQ0wsK0lBQStJO1lBQ2pKLFFBQVEsRUFBRSxrR0FBa0c7WUFDNUcsVUFBVSxFQUFFLHlCQUF5QjtZQUNyQyxhQUFhLEVBQUUsb0JBQW9CO1lBQ25DLGVBQWUsRUFBRSw2REFBNkQ7WUFDOUUsZUFBZSxFQUFFLHlCQUF5QjtZQUMxQyxjQUFjLEVBQUUseUJBQXlCO1lBQ3pDLEtBQUssRUFBRSxrQ0FBa0M7WUFDekMsTUFBTSxFQUFFLFdBQVc7WUFDbkIsU0FBUyxFQUFFO2dCQUNULEdBQUcsRUFBRSxxREFBcUQ7YUFDM0Q7WUFDRCxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFdBQVcsRUFBRSxvQkFBb0I7WUFDakMsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixRQUFRLEVBQUUsaUNBQWlDO1lBQzNDLElBQUksRUFBRTtnQkFDSixZQUFZLEVBQ1YscUhBQXFIO2dCQUN2SCxjQUFjLEVBQUUsc0JBQXNCO2dCQUN0QyxhQUFhLEVBQUUsb0VBQW9FO2dCQUNuRixNQUFNLEVBQ0osbUhBQW1IO2dCQUNySCxPQUFPLEVBQUUsNkNBQTZDO2FBQ3ZEO1lBQ0QsU0FBUyxFQUFFLHFDQUFxQztTQUNqRDtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBmclRyYW5zbGF0aW9ucyA9IHtcbiAgJ0BwcnknOiB7XG4gICAgaW1wb3J0OiB7XG4gICAgICB0aXRsZTogJ0ltcG9ydCBkZSBkb25uw6llcycsXG4gICAgICBkYXRhc2V0SW1wb3J0OiAnSW1wb3J0ZXIgZGFucyB1biBqZXUgZGUgZG9ubsOpZXM6JyxcbiAgICAgIGltcG9ydDogJ0ltcG9ydGVyJyxcbiAgICAgIGVycm9yVGl0bGU6IFwiTCdpbXBvcnQgYSDDqWNob3XDqVwiLFxuICAgICAgc3VjY2Vzc1RpdGxlOiAnSW1wb3J0IGRlIGRvbm7DqWVzIHLDqXVzc2knLFxuICAgICAgdXBsb2FkVGl0bGV6aXA6ICdDaG9pc2lyIHVuIGZpY2hpZXIgLnppcCcsXG4gICAgICB1cGxvYWRUaXRsZWNzdjogJ0Nob2lzaXIgdW4gZmljaGllciAuY3N2JyxcbiAgICAgIHdhcm5pbmc6XG4gICAgICAgICdBdHRlbnRpb24sIGxlIGZpY2hpZXIgbmUgZG9pdCBwYXMgZMOpcGFzc2VyIDJHQiBwb3VyIMOqdHJlIGludMOpZ3JlciB2aWEgY2V0IMOpY3Jhbi4gTGUgY2FzIMOpY2jDqWFudCwgdm90cmUgZmljaGllciBkZXZyYSDDqnRyZSBpbXBvcnTDqSB2aWEgbGVzIEFQSScsXG4gICAgICB0b29MYXJnZTogJ0ZpY2hpZXIgdHJvcCB2b2x1bWluZXV4ICh7e2N1cnJlbnR9fSA+IDJHQiksIHZldWlsbGV6IHV0aWxpc2VyIGxlcyBBUEkgcG91ciBpbXBvcnRlciBjZXMgZG9ubsOpZXMnLFxuICAgICAgc2VsZWN0RmlsZTogJ1PDqWxlY3Rpb25uZXIgdW4gZmljaGllcicsXG4gICAgICBpbXBvcnRlZExpbmVzOiAnbGlnbmVzIGltcG9ydMOpZShzKScsXG4gICAgICBjb25zdWx0RGF0YXNldDE6IFwiTCdpbXBvcnQgZXN0IGVuIGNvdXJzLCBjb25zdWx0ZXogbGEgcGFnZSBkdSBqZXUgZGUgZG9ubsOpZXMgXCIsXG4gICAgICBjb25zdWx0RGF0YXNldDI6ICcgcG91ciB2w6lyaWZpZXIgc29uIMOpdGF0JyxcbiAgICAgIHNoYXBlZmlsZVN0YXRlOiAnIHBvdXIgdsOpcmlmaWVyIHNvbiDDqXRhdCcsXG4gICAgICBlcnJvcjogXCJFcnJldXIgbG9ycyBkZSBsJ2ltcG9ydDoge3ttc2d9fVwiLFxuICAgICAgZXJyb3JzOiAnZXJyZXVyKHMpJyxcbiAgICAgIGVycm9yQ29kZToge1xuICAgICAgICA0MDk6ICdJbXBvcnQgZMOpasOgIGVuIGNvdXJzLCB2ZXVpbGxleiByw6llc3NheWVyIHBsdXMgdGFyZC4nXG4gICAgICB9LFxuICAgICAgbGluZTogJ0xpZ25lIHt7bGluZX19OiAnLFxuICAgICAgd2l0aG91dExpbmU6ICdFcnJldXJzIGdsb2JhbGVzOiAnLFxuICAgICAgZGF0YXNldDogJ0pldSBkZSBkb25uw6llcycsXG4gICAgICBmaWxlVHlwZTogJ1PDqWxlY3Rpb25uZXIgdW4gdHlwZSBkZSBmaWNoaWVyJyxcbiAgICAgIGNvZGU6IHtcbiAgICAgICAgVU5SRUNPR05JWkVEOlxuICAgICAgICAgIFwiTGUgZmljaGllciBmb3VybmkgY29udGllbnQgdW5lIGNvbG9ubmUgwqtcXHUwMEEwe3tuYW1lfX1cXHUwMEEwwrssIHF1aSBuJ2VzdCBwYXMgcHLDqXNlbnRlIGRhbnMgbGUgamV1IGRlIGRvbm7DqWVzIGNob2lzaVwiLFxuICAgICAgICBGSUxFX01BTkRBVE9SWTogJ0F1Y3VuIGZpY2hpZXIgZm91cm5pJyxcbiAgICAgICAgTk9fQVRUUklCVVRFUzogXCJBdWN1biBhdHRyaWJ1dCBjb3JyZXNwb25kYW50IG4nYSDDqXTDqSB0cm91dsOpIGRhbnMgbGUgZmljaGllciBmb3VybmlcIixcbiAgICAgICAgRk9STUFUOlxuICAgICAgICAgIFwiwqtcXHUwMEEwe3tuYW1lfX1cXHUwMEEwwrs6IMKrXFx1MDBBMHt7cmVjZWl2ZWRWYWx1ZX19XFx1MDBBMMK7ICBuJ2EgcGFzIHB1IMOqdHJlIGNvbnZlcnRpZSBlbiB0eXBlIMKrXFx1MDBBMHt7dHlwZX19XFx1MDBBMMK7XCIsXG4gICAgICAgIFNUT1JBR0U6ICdTdG9yYWdlIHN0YWNrIHRyYWNlIGVycm9yOiB7e2VsYXN0aWNFcnJvcn19J1xuICAgICAgfSxcbiAgICAgIG5vcm1hbGl6ZTogJ05vcm1hbGlzZXIgbGVzIGZvcm1lcyBnw6lvZ3JhcGhpcXVlcydcbiAgICB9XG4gIH1cbn07XG4iXX0=
@@ -20,10 +20,13 @@ export class PryDefaultAccessService extends PryBaseAccess {
20
20
  canModifyDataset(dataset) {
21
21
  return of(dataset.owner ?? false);
22
22
  }
23
+ canModifyWidget(widget) {
24
+ return of(widget.owner ?? false);
25
+ }
23
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryDefaultAccessService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
27
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryDefaultAccessService }); }
25
28
  }
26
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryDefaultAccessService, decorators: [{
27
30
  type: Injectable
28
31
  }], ctorParameters: () => [] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9hY2Nlc3MvYWNjZXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFJdEMsTUFBTSxPQUFnQixhQUFhO0NBS2xDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWdCLGtCQUFrQixDQUFDLENBQUM7QUFHdEYsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUFDeEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFUSxPQUFPLENBQUMsR0FBRyxJQUFXO1FBQzdCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFUSxxQkFBcUIsQ0FBQyxZQUFpQztRQUM5RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVRLFFBQVEsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFUSxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUN4QyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7OEdBbkJVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYW5pZmVzdERlc2NyaXB0aW9uIH0gZnJvbSAnLi4vbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFzZXQgfSBmcm9tICcuLi9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQcnlCYXNlQWNjZXNzIHtcbiAgYWJzdHJhY3QgaGFzUm9sZSguLi5hcmdzOiBhbnlbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGFic3RyYWN0IGNhbk1vZGlmeVByZXNlbnRhdGlvbihwcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24pOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhYnN0cmFjdCBoYXNHcm91cChncm91cDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgYWJzdHJhY3QgY2FuTW9kaWZ5RGF0YXNldChkYXRhc2V0OiBEYXRhc2V0KTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbn1cblxuZXhwb3J0IGNvbnN0IFBSWV9BQ0NFU1NfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UHJ5QmFzZUFjY2Vzcz4oJ1BSWV9BQ0NFU1NfVE9LRU4nKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByeURlZmF1bHRBY2Nlc3NTZXJ2aWNlIGV4dGVuZHMgUHJ5QmFzZUFjY2VzcyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBoYXNSb2xlKC4uLmFyZ3M6IGFueVtdKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2FuTW9kaWZ5UHJlc2VudGF0aW9uKHByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBvZihwcmVzZW50YXRpb24/Lm93bmVyKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGhhc0dyb3VwKGdyb3VwOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cblxuICBvdmVycmlkZSBjYW5Nb2RpZnlEYXRhc2V0KGRhdGFzZXQ6IERhdGFzZXQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gb2YoZGF0YXNldC5vd25lciA/PyBmYWxzZSk7XG4gIH1cbn1cbiJdfQ==
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9hY2Nlc3MvYWNjZXNzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdEMsTUFBTSxPQUFnQixhQUFhO0NBTWxDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQWdCLGtCQUFrQixDQUFDLENBQUM7QUFHdEYsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUFDeEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFUSxPQUFPLENBQUMsR0FBRyxJQUFXO1FBQzdCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFUSxxQkFBcUIsQ0FBQyxZQUFpQztRQUM5RCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVRLFFBQVEsQ0FBQyxLQUFhO1FBQzdCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFUSxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUN4QyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFUSxlQUFlLENBQUMsTUFBYztRQUNyQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7OEdBdkJVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNYW5pZmVzdERlc2NyaXB0aW9uIH0gZnJvbSAnLi4vbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFzZXQgfSBmcm9tICcuLi9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBXaWRnZXQgfSBmcm9tICcuLi9tb2RlbC93aWRnZXQuaW50ZXJmYWNlJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFByeUJhc2VBY2Nlc3Mge1xuICBhYnN0cmFjdCBoYXNSb2xlKC4uLmFyZ3M6IGFueVtdKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgYWJzdHJhY3QgY2FuTW9kaWZ5UHJlc2VudGF0aW9uKHByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbik6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGFic3RyYWN0IGhhc0dyb3VwKGdyb3VwOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhYnN0cmFjdCBjYW5Nb2RpZnlEYXRhc2V0KGRhdGFzZXQ6IERhdGFzZXQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhYnN0cmFjdCBjYW5Nb2RpZnlXaWRnZXQod2lkZ2V0OiBXaWRnZXQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xufVxuXG5leHBvcnQgY29uc3QgUFJZX0FDQ0VTU19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxQcnlCYXNlQWNjZXNzPignUFJZX0FDQ0VTU19UT0tFTicpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJ5RGVmYXVsdEFjY2Vzc1NlcnZpY2UgZXh0ZW5kcyBQcnlCYXNlQWNjZXNzIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGhhc1JvbGUoLi4uYXJnczogYW55W10pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gb2YodHJ1ZSk7XG4gIH1cblxuICBvdmVycmlkZSBjYW5Nb2RpZnlQcmVzZW50YXRpb24ocHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG9mKHByZXNlbnRhdGlvbj8ub3duZXIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgaGFzR3JvdXAoZ3JvdXA6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBvZih0cnVlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNhbk1vZGlmeURhdGFzZXQoZGF0YXNldDogRGF0YXNldCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBvZihkYXRhc2V0Lm93bmVyID8/IGZhbHNlKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNhbk1vZGlmeVdpZGdldCh3aWRnZXQ6IFdpZGdldCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBvZih3aWRnZXQub3duZXIgPz8gZmFsc2UpO1xuICB9XG59XG4iXX0=
@@ -14,9 +14,10 @@ export class DatasourceSelectorComponent extends SubscriptionnerDirective {
14
14
  this.manifest$.next(manifest);
15
15
  this.selectedIds$.next(DatasourceUtils.getDatasourceArray(manifest?.datasource));
16
16
  }
17
- constructor(store) {
17
+ constructor(store, cdr) {
18
18
  super();
19
19
  this.store = store;
20
+ this.cdr = cdr;
20
21
  this.manifest$ = new BehaviorSubject(null);
21
22
  this.selectedIds$ = new BehaviorSubject([]);
22
23
  this.showButtons = true;
@@ -26,11 +27,14 @@ export class DatasourceSelectorComponent extends SubscriptionnerDirective {
26
27
  this.cancel = new EventEmitter();
27
28
  this.validated = new EventEmitter();
28
29
  this.itemsChanged = new EventEmitter();
29
- this.datasources$ = combineLatest([
30
+ this.selectedDatasources$ = combineLatest([
30
31
  this.store.select(DataSourceSelectors.getDataSourcesSorted),
31
32
  this.selectedIds$
32
- ]).pipe(map(([datasources, selectedIds]) => DatasourceUtils.getAllDatasourcesWithUnknowns(datasources, selectedIds)));
33
- this.selectedDatasources$ = combineLatest([this.datasources$, this.selectedIds$]).pipe(map(([datasources, selected]) => datasources.filter((ds) => selected.includes(ds.id))));
33
+ ]).pipe(map(([datasources, selectedIds]) => DatasourceUtils.getAllDatasourcesWithUnknowns(datasources, selectedIds).filter((ds) => selectedIds.includes(ds.id))));
34
+ this.subscriptions.add(this.selectedIds$.subscribe((selectedIds) => {
35
+ this.itemsChanged.emit(selectedIds);
36
+ this.cdr.detectChanges();
37
+ }));
34
38
  }
35
39
  isGeo(item) {
36
40
  return DatasourceUtils.isGeo(item);
@@ -39,18 +43,19 @@ export class DatasourceSelectorComponent extends SubscriptionnerDirective {
39
43
  this.selectedIds$.next(this.selectedIds$.value.includes(id)
40
44
  ? this.selectedIds$.value.filter((i) => i !== id)
41
45
  : [...this.selectedIds$.value, id]);
46
+ this.cdr.detectChanges();
42
47
  }
43
48
  updateDatasourceList(ids) {
44
49
  this.selectedIds$.next(ids);
45
- this.itemsChanged.emit(ids);
50
+ this.cdr.detectChanges();
46
51
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DatasourceSelectorComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DatasourceSelectorComponent, deps: [{ token: i1.Store }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
53
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: DatasourceSelectorComponent, selector: "pry-datasource-selector", inputs: { showButtons: "showButtons", showTitle: "showTitle", manifest: "manifest" }, outputs: { previousTab: "previousTab", nextTab: "nextTab", cancel: "cancel", validated: "validated", itemsChanged: "itemsChanged" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-datasource-selector u-display-flex -column\">\n @if (showTitle) {\n <h2 class=\"u-self-center\">{{ '@pry.components.datasourceSelector.select' | i18n }}</h2>\n }\n <div>\n <h3>\n {{ '@pry.components.datasourceSelector.selection' | i18n }} ({{ ((selectedDatasources$ | async) ?? []).length }})\n </h3>\n <div class=\"o-datasource-selector__chips u-display-flex -wrap -gap-10\">\n @if ((selectedDatasources$ | async)?.length === 0) {\n <span class=\"a-label -italic\">{{ '@pry.components.datasourceSelector.noItemSelected' | i18n }}</span>\n } @else {\n @for (datasource of selectedDatasources$ | async; track datasource.id) {\n <button\n class=\"a-chip a-chip--ghost -lg a-tooltip\"\n [attr.data-tooltip]=\"'@pry.components.datasourceSelector.unselectItem' | i18n\"\n type=\"button\"\n (click)=\"toggleSelection(datasource.id)\"\n >\n <pry-icon iconSvg=\"close\" [width]=\"15\" [height]=\"15\"></pry-icon>\n {{ datasource.name }}\n <pry-icon *ngIf=\"isGeo(datasource)\" iconSvg=\"globe\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n }\n </div>\n </div>\n <pry-datasource-list\n mode=\"selector\"\n [selectedDatasources]=\"(selectedIds$ | async) ?? []\"\n (datasourceSelected)=\"updateDatasourceList($event)\"\n ></pry-datasource-list>\n @if (showButtons) {\n <div class=\"m-btn-group o-datasource-selector__footer\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PryDatasourceListComponent, selector: "pry-datasource-list", inputs: ["mode", "selectedDatasources"], outputs: ["consultedDataset", "datasourceSelected"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
49
54
  }
50
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DatasourceSelectorComponent, decorators: [{
51
56
  type: Component,
52
57
  args: [{ selector: 'pry-datasource-selector', template: "<div class=\"o-datasource-selector u-display-flex -column\">\n @if (showTitle) {\n <h2 class=\"u-self-center\">{{ '@pry.components.datasourceSelector.select' | i18n }}</h2>\n }\n <div>\n <h3>\n {{ '@pry.components.datasourceSelector.selection' | i18n }} ({{ ((selectedDatasources$ | async) ?? []).length }})\n </h3>\n <div class=\"o-datasource-selector__chips u-display-flex -wrap -gap-10\">\n @if ((selectedDatasources$ | async)?.length === 0) {\n <span class=\"a-label -italic\">{{ '@pry.components.datasourceSelector.noItemSelected' | i18n }}</span>\n } @else {\n @for (datasource of selectedDatasources$ | async; track datasource.id) {\n <button\n class=\"a-chip a-chip--ghost -lg a-tooltip\"\n [attr.data-tooltip]=\"'@pry.components.datasourceSelector.unselectItem' | i18n\"\n type=\"button\"\n (click)=\"toggleSelection(datasource.id)\"\n >\n <pry-icon iconSvg=\"close\" [width]=\"15\" [height]=\"15\"></pry-icon>\n {{ datasource.name }}\n <pry-icon *ngIf=\"isGeo(datasource)\" iconSvg=\"globe\" [width]=\"18\" [height]=\"18\"></pry-icon>\n </button>\n }\n }\n </div>\n </div>\n <pry-datasource-list\n mode=\"selector\"\n [selectedDatasources]=\"(selectedIds$ | async) ?? []\"\n (datasourceSelected)=\"updateDatasourceList($event)\"\n ></pry-datasource-list>\n @if (showButtons) {\n <div class=\"m-btn-group o-datasource-selector__footer\">\n <button type=\"button\" (click)=\"cancel.emit()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"button\"\n (click)=\"validated.emit()\"\n #validate\n (keydown.tab)=\"nextTab.emit()\"\n class=\"a-btn a-btn--primary\"\n >\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n }\n</div>\n" }]
53
- }], ctorParameters: () => [{ type: i1.Store }], propDecorators: { showButtons: [{
58
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i0.ChangeDetectorRef }], propDecorators: { showButtons: [{
54
59
  type: Input
55
60
  }], showTitle: [{
56
61
  type: Input
@@ -67,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
67
72
  }], itemsChanged: [{
68
73
  type: Output
69
74
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhc291cmNlLXNlbGVjdG9yL2RhdGFzb3VyY2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL3dpZGdldHMvZGF0YXNvdXJjZS1zZWxlY3Rvci9kYXRhc291cmNlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwREFBMEQsQ0FBQzs7Ozs7OztBQU0vRixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsd0JBQXdCO0lBU3ZFLElBQWEsUUFBUSxDQUFDLFFBQStCO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBUUQsWUFBb0IsS0FBWTtRQUM5QixLQUFLLEVBQUUsQ0FBQztRQURVLFVBQUssR0FBTCxLQUFLLENBQU87UUFsQmhDLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFHN0QsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUV4QyxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBTWhCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFLcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUM7WUFDM0QsSUFBSSxDQUFDLFlBQVk7U0FDbEIsQ0FBQyxDQUFDLElBQUksQ0FDTCxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLDZCQUE2QixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUM3RyxDQUFDO1FBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNwRixHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN2RixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFnQjtRQUNwQixPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGVBQWUsQ0FBQyxFQUFVO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDckMsQ0FBQztJQUNKLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxHQUFhO1FBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7OEdBbERVLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGlUQ2J4Qyx1N0RBaURBOzsyRkRwQ2EsMkJBQTJCO2tCQUp2QyxTQUFTOytCQUNFLHlCQUF5QjswRUFVMUIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgV2lkZ2V0TWFuaWZlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9zdWJzY3JpcHRpb25uZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IERhdGFzb3VyY2VVdGlscyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YXNvdXJjZS11dGlscyc7XG5pbXBvcnQgeyBEYXRhU291cmNlU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5zZWxlY3RvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZGF0YXNvdXJjZS1zZWxlY3RvcicsXG4gIHRlbXBsYXRlVXJsOiAnZGF0YXNvdXJjZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGF0YXNvdXJjZVNlbGVjdG9yQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgZGF0YXNvdXJjZXMkOiBPYnNlcnZhYmxlPERhdGFTb3VyY2VbXT47XG4gIG1hbmlmZXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0TWFuaWZlc3QgfCBudWxsPihudWxsKTtcbiAgc2VsZWN0ZWREYXRhc291cmNlcyQ6IE9ic2VydmFibGU8RGF0YVNvdXJjZVtdPjtcblxuICBzZWxlY3RlZElkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG5cbiAgQElucHV0KCkgc2hvd0J1dHRvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93VGl0bGUgPSB0cnVlO1xuICBASW5wdXQoKSBzZXQgbWFuaWZlc3QobWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IHwgbnVsbCkge1xuICAgIHRoaXMubWFuaWZlc3QkLm5leHQobWFuaWZlc3QpO1xuICAgIHRoaXMuc2VsZWN0ZWRJZHMkLm5leHQoRGF0YXNvdXJjZVV0aWxzLmdldERhdGFzb3VyY2VBcnJheShtYW5pZmVzdD8uZGF0YXNvdXJjZSkpO1xuICB9XG5cbiAgQE91dHB1dCgpIHByZXZpb3VzVGFiID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbmV4dFRhYiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHZhbGlkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGl0ZW1zQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5kYXRhc291cmNlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXNTb3J0ZWQpLFxuICAgICAgdGhpcy5zZWxlY3RlZElkcyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YXNvdXJjZXMsIHNlbGVjdGVkSWRzXSkgPT4gRGF0YXNvdXJjZVV0aWxzLmdldEFsbERhdGFzb3VyY2VzV2l0aFVua25vd25zKGRhdGFzb3VyY2VzLCBzZWxlY3RlZElkcykpXG4gICAgKTtcblxuICAgIHRoaXMuc2VsZWN0ZWREYXRhc291cmNlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmRhdGFzb3VyY2VzJCwgdGhpcy5zZWxlY3RlZElkcyRdKS5waXBlKFxuICAgICAgbWFwKChbZGF0YXNvdXJjZXMsIHNlbGVjdGVkXSkgPT4gZGF0YXNvdXJjZXMuZmlsdGVyKChkcykgPT4gc2VsZWN0ZWQuaW5jbHVkZXMoZHMuaWQpKSlcbiAgICApO1xuICB9XG5cbiAgaXNHZW8oaXRlbTogRGF0YVNvdXJjZSkge1xuICAgIHJldHVybiBEYXRhc291cmNlVXRpbHMuaXNHZW8oaXRlbSk7XG4gIH1cblxuICB0b2dnbGVTZWxlY3Rpb24oaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRJZHMkLm5leHQoXG4gICAgICB0aGlzLnNlbGVjdGVkSWRzJC52YWx1ZS5pbmNsdWRlcyhpZClcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkSWRzJC52YWx1ZS5maWx0ZXIoKGkpID0+IGkgIT09IGlkKVxuICAgICAgICA6IFsuLi50aGlzLnNlbGVjdGVkSWRzJC52YWx1ZSwgaWRdXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZURhdGFzb3VyY2VMaXN0KGlkczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkSWRzJC5uZXh0KGlkcyk7XG4gICAgdGhpcy5pdGVtc0NoYW5nZWQuZW1pdChpZHMpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1kYXRhc291cmNlLXNlbGVjdG9yIHUtZGlzcGxheS1mbGV4IC1jb2x1bW5cIj5cbiAgQGlmIChzaG93VGl0bGUpIHtcbiAgICA8aDIgY2xhc3M9XCJ1LXNlbGYtY2VudGVyXCI+e3sgJ0BwcnkuY29tcG9uZW50cy5kYXRhc291cmNlU2VsZWN0b3Iuc2VsZWN0JyB8IGkxOG4gfX08L2gyPlxuICB9XG4gIDxkaXY+XG4gICAgPGgzPlxuICAgICAge3sgJ0BwcnkuY29tcG9uZW50cy5kYXRhc291cmNlU2VsZWN0b3Iuc2VsZWN0aW9uJyB8IGkxOG4gfX0gKHt7ICgoc2VsZWN0ZWREYXRhc291cmNlcyQgfCBhc3luYykgPz8gW10pLmxlbmd0aCB9fSlcbiAgICA8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJvLWRhdGFzb3VyY2Utc2VsZWN0b3JfX2NoaXBzIHUtZGlzcGxheS1mbGV4IC13cmFwIC1nYXAtMTBcIj5cbiAgICAgIEBpZiAoKHNlbGVjdGVkRGF0YXNvdXJjZXMkIHwgYXN5bmMpPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsIC1pdGFsaWNcIj57eyAnQHByeS5jb21wb25lbnRzLmRhdGFzb3VyY2VTZWxlY3Rvci5ub0l0ZW1TZWxlY3RlZCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBmb3IgKGRhdGFzb3VyY2Ugb2Ygc2VsZWN0ZWREYXRhc291cmNlcyQgfCBhc3luYzsgdHJhY2sgZGF0YXNvdXJjZS5pZCkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiYS1jaGlwIGEtY2hpcC0tZ2hvc3QgLWxnIGEtdG9vbHRpcFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0BwcnkuY29tcG9uZW50cy5kYXRhc291cmNlU2VsZWN0b3IudW5zZWxlY3RJdGVtJyB8IGkxOG5cIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU2VsZWN0aW9uKGRhdGFzb3VyY2UuaWQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW3dpZHRoXT1cIjE1XCIgW2hlaWdodF09XCIxNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICB7eyBkYXRhc291cmNlLm5hbWUgfX1cbiAgICAgICAgICAgIDxwcnktaWNvbiAqbmdJZj1cImlzR2VvKGRhdGFzb3VyY2UpXCIgaWNvblN2Zz1cImdsb2JlXCIgW3dpZHRoXT1cIjE4XCIgW2hlaWdodF09XCIxOFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxwcnktZGF0YXNvdXJjZS1saXN0XG4gICAgbW9kZT1cInNlbGVjdG9yXCJcbiAgICBbc2VsZWN0ZWREYXRhc291cmNlc109XCIoc2VsZWN0ZWRJZHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAoZGF0YXNvdXJjZVNlbGVjdGVkKT1cInVwZGF0ZURhdGFzb3VyY2VMaXN0KCRldmVudClcIlxuICA+PC9wcnktZGF0YXNvdXJjZS1saXN0PlxuICBAaWYgKHNob3dCdXR0b25zKSB7XG4gICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIG8tZGF0YXNvdXJjZS1zZWxlY3Rvcl9fZm9vdGVyXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2FuY2VsLmVtaXQoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LmNsb3NlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cInZhbGlkYXRlZC5lbWl0KClcIlxuICAgICAgICAjdmFsaWRhdGVcbiAgICAgICAgKGtleWRvd24udGFiKT1cIm5leHRUYWIuZW1pdCgpXCJcbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QudmFsaWRhdGVkJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9kYXRhc291cmNlLXNlbGVjdG9yL2RhdGFzb3VyY2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL3dpZGdldHMvZGF0YXNvdXJjZS1zZWxlY3Rvci9kYXRhc291cmNlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUd2RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7Ozs7QUFNL0YsTUFBTSxPQUFPLDJCQUE0QixTQUFRLHdCQUF3QjtJQVF2RSxJQUFhLFFBQVEsQ0FBQyxRQUErQjtRQUNuRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQVFELFlBQ1UsS0FBWSxFQUNaLEdBQXNC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bmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBXaWRnZXRNYW5pZmVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGF0YXNvdXJjZVV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9kYXRhLXNvdXJjZS9kYXRhc291cmNlLXV0aWxzJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1kYXRhc291cmNlLXNlbGVjdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICdkYXRhc291cmNlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRhc291cmNlU2VsZWN0b3JDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBtYW5pZmVzdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFdpZGdldE1hbmlmZXN0IHwgbnVsbD4obnVsbCk7XG4gIHNlbGVjdGVkRGF0YXNvdXJjZXMkOiBPYnNlcnZhYmxlPERhdGFTb3VyY2VbXT47XG5cbiAgc2VsZWN0ZWRJZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuXG4gIEBJbnB1dCgpIHNob3dCdXR0b25zID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1RpdGxlID0gdHJ1ZTtcbiAgQElucHV0KCkgc2V0IG1hbmlmZXN0KG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCB8IG51bGwpIHtcbiAgICB0aGlzLm1hbmlmZXN0JC5uZXh0KG1hbmlmZXN0KTtcbiAgICB0aGlzLnNlbGVjdGVkSWRzJC5uZXh0KERhdGFzb3VyY2VVdGlscy5nZXREYXRhc291cmNlQXJyYXkobWFuaWZlc3Q/LmRhdGFzb3VyY2UpKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBwcmV2aW91c1RhYiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG5leHRUYWIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSB2YWxpZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBpdGVtc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5zZWxlY3RlZERhdGFzb3VyY2VzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlc1NvcnRlZCksXG4gICAgICB0aGlzLnNlbGVjdGVkSWRzJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtkYXRhc291cmNlcywgc2VsZWN0ZWRJZHNdKSA9PlxuICAgICAgICBEYXRhc291cmNlVXRpbHMuZ2V0QWxsRGF0YXNvdXJjZXNXaXRoVW5rbm93bnMoZGF0YXNvdXJjZXMsIHNlbGVjdGVkSWRzKS5maWx0ZXIoKGRzKSA9PlxuICAgICAgICAgIHNlbGVjdGVkSWRzLmluY2x1ZGVzKGRzLmlkKVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RlZElkcyQuc3Vic2NyaWJlKChzZWxlY3RlZElkcykgPT4ge1xuICAgICAgICB0aGlzLml0ZW1zQ2hhbmdlZC5lbWl0KHNlbGVjdGVkSWRzKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgaXNHZW8oaXRlbTogRGF0YVNvdXJjZSkge1xuICAgIHJldHVybiBEYXRhc291cmNlVXRpbHMuaXNHZW8oaXRlbSk7XG4gIH1cblxuICB0b2dnbGVTZWxlY3Rpb24oaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRJZHMkLm5leHQoXG4gICAgICB0aGlzLnNlbGVjdGVkSWRzJC52YWx1ZS5pbmNsdWRlcyhpZClcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkSWRzJC52YWx1ZS5maWx0ZXIoKGkpID0+IGkgIT09IGlkKVxuICAgICAgICA6IFsuLi50aGlzLnNlbGVjdGVkSWRzJC52YWx1ZSwgaWRdXG4gICAgKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICB1cGRhdGVEYXRhc291cmNlTGlzdChpZHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5zZWxlY3RlZElkcyQubmV4dChpZHMpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm8tZGF0YXNvdXJjZS1zZWxlY3RvciB1LWRpc3BsYXktZmxleCAtY29sdW1uXCI+XG4gIEBpZiAoc2hvd1RpdGxlKSB7XG4gICAgPGgyIGNsYXNzPVwidS1zZWxmLWNlbnRlclwiPnt7ICdAcHJ5LmNvbXBvbmVudHMuZGF0YXNvdXJjZVNlbGVjdG9yLnNlbGVjdCcgfCBpMThuIH19PC9oMj5cbiAgfVxuICA8ZGl2PlxuICAgIDxoMz5cbiAgICAgIHt7ICdAcHJ5LmNvbXBvbmVudHMuZGF0YXNvdXJjZVNlbGVjdG9yLnNlbGVjdGlvbicgfCBpMThuIH19ICh7eyAoKHNlbGVjdGVkRGF0YXNvdXJjZXMkIHwgYXN5bmMpID8/IFtdKS5sZW5ndGggfX0pXG4gICAgPC9oMz5cbiAgICA8ZGl2IGNsYXNzPVwiby1kYXRhc291cmNlLXNlbGVjdG9yX19jaGlwcyB1LWRpc3BsYXktZmxleCAtd3JhcCAtZ2FwLTEwXCI+XG4gICAgICBAaWYgKChzZWxlY3RlZERhdGFzb3VyY2VzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYS1sYWJlbCAtaXRhbGljXCI+e3sgJ0BwcnkuY29tcG9uZW50cy5kYXRhc291cmNlU2VsZWN0b3Iubm9JdGVtU2VsZWN0ZWQnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBAZm9yIChkYXRhc291cmNlIG9mIHNlbGVjdGVkRGF0YXNvdXJjZXMkIHwgYXN5bmM7IHRyYWNrIGRhdGFzb3VyY2UuaWQpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImEtY2hpcCBhLWNoaXAtLWdob3N0IC1sZyBhLXRvb2x0aXBcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LmNvbXBvbmVudHMuZGF0YXNvdXJjZVNlbGVjdG9yLnVuc2VsZWN0SXRlbScgfCBpMThuXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNlbGVjdGlvbihkYXRhc291cmNlLmlkKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiIFt3aWR0aF09XCIxNVwiIFtoZWlnaHRdPVwiMTVcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAge3sgZGF0YXNvdXJjZS5uYW1lIH19XG4gICAgICAgICAgICA8cHJ5LWljb24gKm5nSWY9XCJpc0dlbyhkYXRhc291cmNlKVwiIGljb25Tdmc9XCJnbG9iZVwiIFt3aWR0aF09XCIxOFwiIFtoZWlnaHRdPVwiMThcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8cHJ5LWRhdGFzb3VyY2UtbGlzdFxuICAgIG1vZGU9XCJzZWxlY3RvclwiXG4gICAgW3NlbGVjdGVkRGF0YXNvdXJjZXNdPVwiKHNlbGVjdGVkSWRzJCB8IGFzeW5jKSA/PyBbXVwiXG4gICAgKGRhdGFzb3VyY2VTZWxlY3RlZCk9XCJ1cGRhdGVEYXRhc291cmNlTGlzdCgkZXZlbnQpXCJcbiAgPjwvcHJ5LWRhdGFzb3VyY2UtbGlzdD5cbiAgQGlmIChzaG93QnV0dG9ucykge1xuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCBvLWRhdGFzb3VyY2Utc2VsZWN0b3JfX2Zvb3RlclwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbC5lbWl0KClcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIj5cbiAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJ2YWxpZGF0ZWQuZW1pdCgpXCJcbiAgICAgICAgI3ZhbGlkYXRlXG4gICAgICAgIChrZXlkb3duLnRhYik9XCJuZXh0VGFiLmVtaXQoKVwiXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LnZhbGlkYXRlZCcgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Component, EventEmitter, Input, Optional, Output } from '@angular/core';
2
2
  import { DashboardActions, DashboardGridLayout, DashboardSelectors, SubscriptionnerDirective, ViewMode, WidgetPlacementUtils } from '@provoly/dashboard';
3
- import { BehaviorSubject, combineLatest, take } from 'rxjs';
3
+ import { BehaviorSubject, combineLatest } from 'rxjs';
4
4
  import { MetadataSelectors } from '@provoly/dashboard/components/metadata-editor';
5
5
  import { v4 as uuidv4 } from 'uuid';
6
6
  import * as i0 from "@angular/core";
@@ -28,12 +28,13 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
28
28
  this.mode = 'meta';
29
29
  this.goBack = new EventEmitter();
30
30
  this.staticManifest$ = this.store.select(DashboardSelectors.staticManifest);
31
- combineLatest([this.staticManifest$, this.store.select(DashboardSelectors.gridLayout)]).subscribe(([staticManifest, gridLayout]) => {
31
+ this.subscriptions.add(this.staticManifest$.subscribe(manifest => this.staticManifest = manifest));
32
+ this.subscriptions.add(combineLatest([this.staticManifest$, this.store.select(DashboardSelectors.gridLayout)]).subscribe(([staticManifest, gridLayout]) => {
32
33
  this.chosenLayout =
33
34
  this.edition && staticManifest.windows[0]?.grid?.layout !== undefined
34
35
  ? staticManifest.windows[0]?.grid?.layout
35
36
  : gridLayout;
36
- });
37
+ }));
37
38
  this.subscriptions.add(this.store.select(MetadataSelectors.metadata).subscribe((metadata) => {
38
39
  this.metadataDefs = metadata;
39
40
  const metadataTheme = metadata?.find((meta) => meta.name === '_theme');
@@ -42,16 +43,6 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
42
43
  }
43
44
  }));
44
45
  }
45
- save() {
46
- if (!this.edition) {
47
- this.store.dispatch(DashboardActions.updateStaticManifest({ staticManifest: { windows: [] } }));
48
- }
49
- const presentation = this.dispatchSave();
50
- this.store.dispatch(DashboardActions.selectPresentation({
51
- presentation,
52
- viewMode: ViewMode.EDITION
53
- }));
54
- }
55
46
  dispatchSave() {
56
47
  const presentation = {
57
48
  ...this.selectedPresentation$.value,
@@ -59,18 +50,23 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
59
50
  ...this.formValue,
60
51
  metadata: this.metadata()
61
52
  };
62
- this.subscriptions.add(this.staticManifest$.pipe(take(1)).subscribe((staticManifest) => {
63
- this.store.dispatch(DashboardActions.saveManifest({
64
- ...presentation,
65
- metadata: presentation.metadata?.map((metadata) => ({
66
- metadataDefId: metadata.metadataDef.id,
67
- value: metadata.value
68
- })),
69
- manifest: staticManifest
70
- }));
53
+ this.store.dispatch(DashboardActions.saveManifest({
54
+ ...presentation,
55
+ metadata: presentation.metadata?.map((metadata) => ({
56
+ metadataDefId: metadata.metadataDef.id,
57
+ value: metadata.value
58
+ })),
59
+ manifest: this.edition ? this.staticManifest : this.getNewManifest()
71
60
  }));
72
61
  return presentation;
73
62
  }
63
+ save() {
64
+ const presentation = this.dispatchSave();
65
+ this.store.dispatch(DashboardActions.selectPresentation({
66
+ presentation,
67
+ viewMode: ViewMode.EDITION
68
+ }));
69
+ }
74
70
  configureDashboard(selectedPresentation) {
75
71
  if (this.isFormValid) {
76
72
  this.dispatchSave();
@@ -81,25 +77,6 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
81
77
  metadata: this.metadata()
82
78
  };
83
79
  if (!this.edition) {
84
- this.store.dispatch(DashboardActions.updateManifest({
85
- manifest: {
86
- windows: [
87
- {
88
- widgets: [],
89
- grid: {
90
- layout: this.chosenLayout,
91
- columns: WidgetPlacementUtils.getLayout(this.chosenLayout)?.columns,
92
- rows: WidgetPlacementUtils.getLayout(this.chosenLayout)?.rows
93
- }
94
- }
95
- ]
96
- },
97
- selectedIds: [],
98
- manifestId: selectedPresentation.id
99
- }));
100
- this.store.dispatch(DashboardActions.setInitialPresentation({
101
- initial: { windows: [{ widgets: [], grid: { layout: this.chosenLayout } }] }
102
- }));
103
80
  this.store.dispatch(DashboardActions.selectPresentation({
104
81
  presentation,
105
82
  viewMode: ViewMode.CREATION
@@ -141,6 +118,20 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
141
118
  ]
142
119
  : this.selectedPresentation$.value?.metadata ?? [];
143
120
  }
121
+ getNewManifest() {
122
+ return {
123
+ windows: [
124
+ {
125
+ widgets: [],
126
+ grid: {
127
+ layout: this.chosenLayout,
128
+ columns: WidgetPlacementUtils.getLayout(this.chosenLayout)?.columns,
129
+ rows: WidgetPlacementUtils.getLayout(this.chosenLayout)?.rows
130
+ }
131
+ }
132
+ ]
133
+ };
134
+ }
144
135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryAddEditPresentationComponent, deps: [{ token: i1.Store }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
145
136
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryAddEditPresentationComponent, selector: "pry-add-edit-presentation", inputs: { selectedPresentation: "selectedPresentation", edition: "edition", themePrefix: "themePrefix", editionStartUrl: "editionStartUrl", mode: "mode" }, outputs: { goBack: "goBack" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox -justify-space-between -align-center\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"save()\" [disabled]=\"!isFormValid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h2 class=\"a-h2\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h2>\n <div class=\"o-presentation-form-wrapper\">\n <div class=\"u-display-flex -column\">\n <pry-presentation-form\n mode=\"theme\"\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n [mode]=\"mode\"\n [themePrefix]=\"themePrefix\"\n ></pry-presentation-form>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n <pry-select-grid-layout *ngIf=\"!edition\"></pry-select-grid-layout>\n </div>\n </div>\n <ng-container *ngIf=\"mode === 'meta'\">\n <div class=\"o-presentation__metadata-editor\" *ngIf=\"selectedPresentation$ | async as selectedPresentation\">\n <pry-metadata-editor\n [targetId]=\"selectedPresentation.id\"\n [isModification]=\"true\"\n [metadata]=\"selectedPresentation.metadata ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </div>\n </ng-container>\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"configureDashboard(selectedPresentation$.value!)\"\n [disabled]=\"!isFormValid\"\n >\n {{ '@pry.presentation.configuration' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i3.SelectGridLayoutComponent, selector: "pry-select-grid-layout" }, { kind: "component", type: i3.PresentationFormComponent, selector: "pry-presentation-form", inputs: ["mode", "themePrefix", "selectedPresentation"], outputs: ["formValue", "isFormValid"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "pipe", type: i6.I18nPipe, name: "i18n" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
146
137
  }
@@ -162,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
162
153
  }], goBack: [{
163
154
  type: Output
164
155
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVkaXQtcHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL2FkZC1lZGl0LXByZXNlbnRhdGlvbi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvYWRkLWVkaXQtcHJlc2VudGF0aW9uL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFJbEIsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLCtDQUErQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsd0JBQXdCO0lBUzNFLElBQWEsb0JBQW9CLENBQUMsWUFBNkM7UUFDN0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBUUQsWUFDWSxLQUFZLEVBQ0EsTUFBYztRQUVwQyxLQUFLLEVBQUUsQ0FBQztR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SztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9wdGlvbmFsLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEFjdGlvbnMsXG4gIERhc2hib2FyZEdyaWRMYXlvdXQsXG4gIERhc2hib2FyZFNlbGVjdG9ycyxcbiAgR2xvYmFsTWFuaWZlc3QsXG4gIElNZXRhZGF0YSxcbiAgTWFuaWZlc3REZXNjcmlwdGlvbiwgTWV0YWRhdGFWYWx1ZSxcbiAgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlLFxuICBWaWV3TW9kZSxcbiAgV2lkZ2V0UGxhY2VtZW50VXRpbHNcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWV0YWRhdGFTZWxlY3RvcnMsIE1ldGFFdmVudFR5cGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9tZXRhZGF0YS1lZGl0b3InO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBQcmVzZW50YXRpb25Gb3JtVmFsdWUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZGQtZWRpdC1wcmVzZW50YXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWVkaXQtcHJlc2VudGF0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlBZGRFZGl0UHJlc2VudGF0aW9uQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgc3RhdGljTWFuaWZlc3QkOiBPYnNlcnZhYmxlPEdsb2JhbE1hbmlmZXN0PjtcbiAgc2VsZWN0ZWRQcmVzZW50YXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBjaG9zZW5MYXlvdXQ6IHN0cmluZyA9IERhc2hib2FyZEdyaWRMYXlvdXQuRlVMTDtcbiAgbWV0YWRhdGFEZWZzOiBJTWV0YWRhdGFbXSB8IHVuZGVmaW5lZDtcbiAgbWV0YWRhdGFUaGVtZUlkOiBzdHJpbmcgPSAnJztcbiAgZm9ybVZhbHVlPzogUGFydGlhbDxQcmVzZW50YXRpb25Gb3JtVmFsdWU+O1xuICBpc0Zvcm1WYWxpZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFByZXNlbnRhdGlvbihwcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC5uZXh0KHByZXNlbnRhdGlvbik7XG4gIH1cbiAgQElucHV0KCkgZWRpdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0aGVtZVByZWZpeDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGVkaXRpb25TdGFydFVybDogc3RyaW5nID0gJy8nO1xuICBASW5wdXQoKSBtb2RlOiAndGhlbWUnIHwgJ21ldGEnID0gJ21ldGEnO1xuXG4gIEBPdXRwdXQoKSBnb0JhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZSxcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0YXRpY01hbmlmZXN0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5zdGF0aWNNYW5pZmVzdCk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5zdGF0aWNNYW5pZmVzdCQsIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5ncmlkTGF5b3V0KV0pLnN1YnNjcmliZShcbiAgICAgIChbc3RhdGljTWFuaWZlc3QsIGdyaWRMYXlvdXRdKSA9PiB7XG4gICAgICAgIHRoaXMuY2hvc2VuTGF5b3V0ID1cbiAgICAgICAgICB0aGlzLmVkaXRpb24gJiYgc3RhdGljTWFuaWZlc3Qud2luZG93c1swXT8uZ3JpZD8ubGF5b3V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gc3RhdGljTWFuaWZlc3Qud2luZG93c1swXT8uZ3JpZD8ubGF5b3V0XG4gICAgICAgICAgICA6IGdyaWRMYXlvdXQ7XG4gICAgICB9XG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpLnN1YnNjcmliZSgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YURlZnMgPSBtZXRhZGF0YTtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFUaGVtZSA9IG1ldGFkYXRhPy5maW5kKChtZXRhKSA9PiBtZXRhLm5hbWUgPT09ICdfdGhlbWUnKTtcbiAgICAgICAgaWYgKG1ldGFkYXRhVGhlbWUpIHtcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhVGhlbWVJZCA9IG1ldGFkYXRhVGhlbWU/LmlkID8/ICcnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzYXZlKCkge1xuICAgIGlmICghdGhpcy5lZGl0aW9uKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudXBkYXRlU3RhdGljTWFuaWZlc3QoeyBzdGF0aWNNYW5pZmVzdDogeyB3aW5kb3dzOiBbXSB9IH0pKTtcbiAgICB9XG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0gdGhpcy5kaXNwYXRjaFNhdmUoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oe1xuICAgICAgICBwcmVzZW50YXRpb24sXG4gICAgICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5FRElUSU9OXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwYXRjaFNhdmUoKTogTWFuaWZlc3REZXNjcmlwdGlvbiB7XG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0ge1xuICAgICAgLi4udGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhLFxuICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCB8fCB1dWlkdjQoKSxcbiAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdGF0aWNNYW5pZmVzdCQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHN0YXRpY01hbmlmZXN0KSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zYXZlTWFuaWZlc3Qoe1xuICAgICAgICAgICAgLi4ucHJlc2VudGF0aW9uLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHByZXNlbnRhdGlvbi5tZXRhZGF0YT8ubWFwKChtZXRhZGF0YTogTWV0YWRhdGFWYWx1ZSkgPT4gKHtcbiAgICAgICAgICAgICAgbWV0YWRhdGFEZWZJZDogbWV0YWRhdGEubWV0YWRhdGFEZWYuaWQsXG4gICAgICAgICAgICAgIHZhbHVlOiBtZXRhZGF0YS52YWx1ZVxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgbWFuaWZlc3Q6IHN0YXRpY01hbmlmZXN0XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcHJlc2VudGF0aW9uO1xuICB9XG5cbiAgY29uZmlndXJlRGFzaGJvYXJkKHNlbGVjdGVkUHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uKSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtVmFsaWQpIHtcbiAgICAgIHRoaXMuZGlzcGF0Y2hTYXZlKCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0ge1xuICAgICAgLi4udGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhLFxuICAgICAgLi4udGhpcy5mb3JtVmFsdWUsXG4gICAgICBtZXRhZGF0YTogdGhpcy5tZXRhZGF0YSgpXG4gICAgfTtcblxuICAgIGlmICghdGhpcy5lZGl0aW9uKSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZU1hbmlmZXN0KHtcbiAgICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgICAgd2luZG93czogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgd2lkZ2V0czogW10sXG4gICAgICAgICAgICAgICAgZ3JpZDoge1xuICAgICAgICAgICAgICAgICAgbGF5b3V0OiB0aGlzLmNob3NlbkxheW91dCxcbiAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IFdpZGdldFBsYWNlbWVudFV0aWxzLmdldExheW91dCh0aGlzLmNob3NlbkxheW91dCk/LmNvbHVtbnMsXG4gICAgICAgICAgICAgICAgICByb3dzOiBXaWRnZXRQbGFjZW1lbnRVdGlscy5nZXRMYXlvdXQodGhpcy5jaG9zZW5MYXlvdXQpPy5yb3dzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzZWxlY3RlZElkczogW10sXG4gICAgICAgICAgbWFuaWZlc3RJZDogc2VsZWN0ZWRQcmVzZW50YXRpb24uaWRcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnNldEluaXRpYWxQcmVzZW50YXRpb24oe1xuICAgICAgICAgIGluaXRpYWw6IHsgd2luZG93czogW3sgd2lkZ2V0czogW10sIGdyaWQ6IHsgbGF5b3V0OiB0aGlzLmNob3NlbkxheW91dCBhcyBEYXNoYm9hcmRHcmlkTGF5b3V0IH0gfV0gfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMuc2VsZWN0UHJlc2VudGF0aW9uKHtcbiAgICAgICAgICBwcmVzZW50YXRpb24sXG4gICAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkNSRUFUSU9OXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLmxvYWRQcmVzZW50YXRpb24oe1xuICAgICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgICB2aWV3TW9kZTogVmlld01vZGUuRURJVElPTlxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlQnlVcmwodGhpcy5lZGl0aW9uU3RhcnRVcmwpO1xuICB9XG5cbiAgYWRkTWV0YWRhdGEobWV0YWRhdGE6IE1ldGFFdmVudFR5cGUpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5hZGRNYW5pZmVzdE1ldGFkYXRhKHtcbiAgICAgICAgcHJlc2VudGF0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCEsXG4gICAgICAgIG1ldGFkYXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhSWQsXG4gICAgICAgIHZhbHVlOiBtZXRhZGF0YS52YWx1ZSA/PyAnJ1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlTWV0YWRhdGEobWV0YWRhdGE6IE1ldGFFdmVudFR5cGUpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5kZWxldGVNYW5pZmVzdE1ldGFkYXRhKHtcbiAgICAgICAgcHJlc2VudGF0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCEsXG4gICAgICAgIG1ldGFkYXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhSWRcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZ29CYWNrLmVtaXQoKTtcbiAgfVxuXG4gIG1ldGFkYXRhKCk6IE1ldGFkYXRhVmFsdWVbXSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ3RoZW1lJ1xuICAgICAgPyAhdGhpcy5mb3JtVmFsdWU/LnRoZW1lIHx8IHRoaXMuZm9ybVZhbHVlPy50aGVtZSA9PT0gJydcbiAgICAgICAgPyBbXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWV0YWRhdGFEZWY6IHRoaXMubWV0YWRhdGFEZWZzIS5maW5kKChtZXRhZGF0YSkgPT4gbWV0YWRhdGEuaWQgPT09IHRoaXMubWV0YWRhdGFUaGVtZUlkKSEsXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmZvcm1WYWx1ZS50aGVtZSA/PyAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgIDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/Lm1ldGFkYXRhID8/IFtdO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRcIj5cbiAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X190b29sYm94IC1qdXN0aWZ5LXNwYWNlLWJldHdlZW4gLWFsaWduLWNlbnRlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LmNsb3NlJyB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhaXNGb3JtVmFsaWRcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2hlY2snIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X19jb250ZW50LS1wcmVzZW50YXRpb25cIj5cbiAgICA8aDIgY2xhc3M9XCJhLWgyXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmFkZCcgKyAnLnBhZ2VUaXRsZScgfCBpMThuIH19PC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb24tZm9ybS13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLWNvbHVtblwiPlxuICAgICAgICA8cHJ5LXByZXNlbnRhdGlvbi1mb3JtXG4gICAgICAgICAgbW9kZT1cInRoZW1lXCJcbiAgICAgICAgICBbc2VsZWN0ZWRQcmVzZW50YXRpb25dPVwiKHNlbGVjdGVkUHJlc2VudGF0aW9uJCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgIChmb3JtVmFsdWUpPVwiZm9ybVZhbHVlID0gJGV2ZW50XCJcbiAgICAgICAgICAoaXNGb3JtVmFsaWQpPVwiaXNGb3JtVmFsaWQgPSAkZXZlbnRcIlxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgIFt0aGVtZVByZWZpeF09XCJ0aGVtZVByZWZpeFwiXG4gICAgICAgID48L3ByeS1wcmVzZW50YXRpb24tZm9ybT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbCBtLWZvcm0tbGFiZWwtZmllbGQtLWlubGluZVwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIj57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5ncmlkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnRvb2xib3gubGF5b3V0LicgKyB0aGlzLmNob3NlbkxheW91dCB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgPHByeS1zZWxlY3QtZ3JpZC1sYXlvdXQgKm5nSWY9XCIhZWRpdGlvblwiPjwvcHJ5LXNlbGVjdC1ncmlkLWxheW91dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnbWV0YSdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uX19tZXRhZGF0YS1lZGl0b3JcIiAqbmdJZj1cInNlbGVjdGVkUHJlc2VudGF0aW9uJCB8IGFzeW5jIGFzIHNlbGVjdGVkUHJlc2VudGF0aW9uXCI+XG4gICAgICAgICAgPHByeS1tZXRhZGF0YS1lZGl0b3JcbiAgICAgICAgICAgIFt0YXJnZXRJZF09XCJzZWxlY3RlZFByZXNlbnRhdGlvbi5pZFwiXG4gICAgICAgICAgICBbaXNNb2RpZmljYXRpb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbWV0YWRhdGFdPVwic2VsZWN0ZWRQcmVzZW50YXRpb24ubWV0YWRhdGEgPz8gW11cIlxuICAgICAgICAgICAgKHJlbW92ZU1ldGEpPVwicmVtb3ZlTWV0YWRhdGEoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYWRkTWV0YSk9XCJhZGRNZXRhZGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidtZXRhJ1wiXG4gICAgICAgICAgPjwvcHJ5LW1ldGFkYXRhLWVkaXRvcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgIChjbGljayk9XCJjb25maWd1cmVEYXNoYm9hcmQoc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlISlcIlxuICAgICAgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiXG4gICAgPlxuICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLmNvbmZpZ3VyYXRpb24nIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVkaXQtcHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL2FkZC1lZGl0LXByZXNlbnRhdGlvbi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvYWRkLWVkaXQtcHJlc2VudGF0aW9uL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFLbEIsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBb0IsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLCtDQUErQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsd0JBQXdCO0lBVTNFLElBQWEsb0JBQW9CLENBQUMsWUFBNkM7UUFDN0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBUUQsWUFDWSxLQUFZLEVBQ0EsTUFBYztRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUhFLFVBQUss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Q0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxFQUFFO3dCQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTt3QkFDekIsT0FBTyxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTzt3QkFDbkUsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtxQkFDOUQ7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQTdKVSwrQkFBK0I7a0dBQS9CLCtCQUErQixtUkN4QjVDLGtyRUFpREE7OzJGRHpCYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkF5QmxDLFFBQVE7eUNBWkUsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgSU1ldGFkYXRhLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBNZXRhZGF0YVZhbHVlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXRQbGFjZW1lbnRVdGlsc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YVNlbGVjdG9ycywgTWV0YUV2ZW50VHlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkZvcm1WYWx1ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC90b29sYm94JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkZC1lZGl0LXByZXNlbnRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUFkZEVkaXRQcmVzZW50YXRpb25Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBzdGF0aWNNYW5pZmVzdCQ6IE9ic2VydmFibGU8R2xvYmFsTWFuaWZlc3Q+O1xuICBzdGF0aWNNYW5pZmVzdD86IEdsb2JhbE1hbmlmZXN0O1xuICBzZWxlY3RlZFByZXNlbnRhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNob3NlbkxheW91dDogc3RyaW5nID0gRGFzaGJvYXJkR3JpZExheW91dC5GVUxMO1xuICBtZXRhZGF0YURlZnM6IElNZXRhZGF0YVtdIHwgdW5kZWZpbmVkO1xuICBtZXRhZGF0YVRoZW1lSWQ6IHN0cmluZyA9ICcnO1xuICBmb3JtVmFsdWU/OiBQYXJ0aWFsPFByZXNlbnRhdGlvbkZvcm1WYWx1ZT47XG4gIGlzRm9ybVZhbGlkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkUHJlc2VudGF0aW9uKHByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQocHJlc2VudGF0aW9uKTtcbiAgfVxuICBASW5wdXQoKSBlZGl0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRoZW1lUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZWRpdGlvblN0YXJ0VXJsOiBzdHJpbmcgPSAnLyc7XG4gIEBJbnB1dCgpIG1vZGU6ICd0aGVtZScgfCAnbWV0YScgPSAnbWV0YSc7XG5cbiAgQE91dHB1dCgpIGdvQmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlLFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhdGljTWFuaWZlc3QkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnN0YXRpY01hbmlmZXN0KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RhdGljTWFuaWZlc3QkLnN1YnNjcmliZShtYW5pZmVzdCA9PiB0aGlzLnN0YXRpY01hbmlmZXN0ID0gbWFuaWZlc3QpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5zdGF0aWNNYW5pZmVzdCQsIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5ncmlkTGF5b3V0KV0pLnN1YnNjcmliZShcbiAgICAgICAgKFtzdGF0aWNNYW5pZmVzdCwgZ3JpZExheW91dF0pID0+IHtcbiAgICAgICAgICB0aGlzLmNob3NlbkxheW91dCA9XG4gICAgICAgICAgICB0aGlzLmVkaXRpb24gJiYgc3RhdGljTWFuaWZlc3Qud2luZG93c1swXT8uZ3JpZD8ubGF5b3V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyBzdGF0aWNNYW5pZmVzdC53aW5kb3dzWzBdPy5ncmlkPy5sYXlvdXRcbiAgICAgICAgICAgICAgOiBncmlkTGF5b3V0O1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpLnN1YnNjcmliZSgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YURlZnMgPSBtZXRhZGF0YTtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFUaGVtZSA9IG1ldGFkYXRhPy5maW5kKChtZXRhKSA9PiBtZXRhLm5hbWUgPT09ICdfdGhlbWUnKTtcbiAgICAgICAgaWYgKG1ldGFkYXRhVGhlbWUpIHtcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhVGhlbWVJZCA9IG1ldGFkYXRhVGhlbWU/LmlkID8/ICcnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwYXRjaFNhdmUoKTogTWFuaWZlc3REZXNjcmlwdGlvbiB7XG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0ge1xuICAgICAgLi4udGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhLFxuICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCB8fCB1dWlkdjQoKSxcbiAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zYXZlTWFuaWZlc3Qoe1xuICAgICAgICAuLi5wcmVzZW50YXRpb24sXG4gICAgICAgIG1ldGFkYXRhOiBwcmVzZW50YXRpb24ubWV0YWRhdGE/Lm1hcCgobWV0YWRhdGE6IE1ldGFkYXRhVmFsdWUpID0+ICh7XG4gICAgICAgICAgbWV0YWRhdGFEZWZJZDogbWV0YWRhdGEubWV0YWRhdGFEZWYuaWQsXG4gICAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlXG4gICAgICAgIH0pKSxcbiAgICAgICAgbWFuaWZlc3Q6IHRoaXMuZWRpdGlvbiA/IHRoaXMuc3RhdGljTWFuaWZlc3QgOiB0aGlzLmdldE5ld01hbmlmZXN0KClcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcHJlc2VudGF0aW9uO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBjb25zdCBwcmVzZW50YXRpb24gPSB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7XG4gICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkVESVRJT05cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZURhc2hib2FyZChzZWxlY3RlZFByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbikge1xuICAgIGlmICh0aGlzLmlzRm9ybVZhbGlkKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXNlbnRhdGlvbiA9IHtcbiAgICAgIC4uLnRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlISxcbiAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuZWRpdGlvbikge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oe1xuICAgICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgICB2aWV3TW9kZTogVmlld01vZGUuQ1JFQVRJT05cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMubG9hZFByZXNlbnRhdGlvbih7XG4gICAgICAgICAgcHJlc2VudGF0aW9uLFxuICAgICAgICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5FRElUSU9OXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybCh0aGlzLmVkaXRpb25TdGFydFVybCk7XG4gIH1cblxuICBhZGRNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLmFkZE1hbmlmZXN0TWV0YWRhdGEoe1xuICAgICAgICBwcmVzZW50YXRpb25JZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkISxcbiAgICAgICAgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZCxcbiAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlID8/ICcnXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZW1vdmVNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLmRlbGV0ZU1hbmlmZXN0TWV0YWRhdGEoe1xuICAgICAgICBwcmVzZW50YXRpb25JZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkISxcbiAgICAgICAgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5nb0JhY2suZW1pdCgpO1xuICB9XG5cbiAgbWV0YWRhdGEoKTogTWV0YWRhdGFWYWx1ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAndGhlbWUnXG4gICAgICA/ICF0aGlzLmZvcm1WYWx1ZT8udGhlbWUgfHwgdGhpcy5mb3JtVmFsdWU/LnRoZW1lID09PSAnJ1xuICAgICAgICA/IFtdXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXRhZGF0YURlZjogdGhpcy5tZXRhZGF0YURlZnMhLmZpbmQoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5pZCA9PT0gdGhpcy5tZXRhZGF0YVRoZW1lSWQpISxcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZm9ybVZhbHVlLnRoZW1lID8/ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgOiB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8ubWV0YWRhdGEgPz8gW107XG4gIH1cblxuICBnZXROZXdNYW5pZmVzdCgpOiBHbG9iYWxNYW5pZmVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpbmRvd3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHdpZGdldHM6IFtdLFxuICAgICAgICAgIGdyaWQ6IHtcbiAgICAgICAgICAgIGxheW91dDogdGhpcy5jaG9zZW5MYXlvdXQsXG4gICAgICAgICAgICBjb2x1bW5zOiBXaWRnZXRQbGFjZW1lbnRVdGlscy5nZXRMYXlvdXQodGhpcy5jaG9zZW5MYXlvdXQpPy5jb2x1bW5zLFxuICAgICAgICAgICAgcm93czogV2lkZ2V0UGxhY2VtZW50VXRpbHMuZ2V0TGF5b3V0KHRoaXMuY2hvc2VuTGF5b3V0KT8ucm93c1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dFwiPlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3ggLWp1c3RpZnktc3BhY2UtYmV0d2VlbiAtYWxpZ24tY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2xvc2UnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jaGVjaycgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX2NvbnRlbnQtLXByZXNlbnRhdGlvblwiPlxuICAgIDxoMiBjbGFzcz1cImEtaDJcIj57eyAnQHByeS5wcmVzZW50YXRpb24uYWRkJyArICcucGFnZVRpdGxlJyB8IGkxOG4gfX08L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi1mb3JtLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtY29sdW1uXCI+XG4gICAgICAgIDxwcnktcHJlc2VudGF0aW9uLWZvcm1cbiAgICAgICAgICBtb2RlPVwidGhlbWVcIlxuICAgICAgICAgIFtzZWxlY3RlZFByZXNlbnRhdGlvbl09XCIoc2VsZWN0ZWRQcmVzZW50YXRpb24kIHwgYXN5bmMpID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgKGZvcm1WYWx1ZSk9XCJmb3JtVmFsdWUgPSAkZXZlbnRcIlxuICAgICAgICAgIChpc0Zvcm1WYWxpZCk9XCJpc0Zvcm1WYWxpZCA9ICRldmVudFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3RoZW1lUHJlZml4XT1cInRoZW1lUHJlZml4XCJcbiAgICAgICAgPjwvcHJ5LXByZXNlbnRhdGlvbi1mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsIG0tZm9ybS1sYWJlbC1maWVsZC0taW5saW5lXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmdyaWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkudG9vbGJveC5sYXlvdXQuJyArIHRoaXMuY2hvc2VuTGF5b3V0IHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICA8cHJ5LXNlbGVjdC1ncmlkLWxheW91dCAqbmdJZj1cIiFlZGl0aW9uXCI+PC9wcnktc2VsZWN0LWdyaWQtbGF5b3V0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdtZXRhJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb25fX21ldGFkYXRhLWVkaXRvclwiICpuZ0lmPVwic2VsZWN0ZWRQcmVzZW50YXRpb24kIHwgYXN5bmMgYXMgc2VsZWN0ZWRQcmVzZW50YXRpb25cIj5cbiAgICAgICAgICA8cHJ5LW1ldGFkYXRhLWVkaXRvclxuICAgICAgICAgICAgW3RhcmdldElkXT1cInNlbGVjdGVkUHJlc2VudGF0aW9uLmlkXCJcbiAgICAgICAgICAgIFtpc01vZGlmaWNhdGlvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttZXRhZGF0YV09XCJzZWxlY3RlZFByZXNlbnRhdGlvbi5tZXRhZGF0YSA/PyBbXVwiXG4gICAgICAgICAgICAocmVtb3ZlTWV0YSk9XCJyZW1vdmVNZXRhZGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChhZGRNZXRhKT1cImFkZE1ldGFkYXRhKCRldmVudClcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ21ldGEnXCJcbiAgICAgICAgICA+PC9wcnktbWV0YWRhdGEtZWRpdG9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgKGNsaWNrKT1cImNvbmZpZ3VyZURhc2hib2FyZChzZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhKVwiXG4gICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVZhbGlkXCJcbiAgICA+XG4gICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24uY29uZmlndXJhdGlvbicgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=