c3-components 0.0.22 → 0.0.25

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.
@@ -69,31 +69,25 @@ export class C3DialogService {
69
69
  ...config,
70
70
  });
71
71
  // detect the inputs of the component
72
- const { componentInstance } = dialog;
72
+ const { componentRef } = dialog;
73
+ if (!componentRef)
74
+ return dialog;
73
75
  if (_data.inputs)
74
- this._setInputs(component, _data.inputs, componentInstance);
76
+ this._setInputs(component, _data.inputs, componentRef);
75
77
  return dialog;
76
78
  }
77
79
  _getInputProperties(component) {
78
80
  const inputs = [];
79
- const proto = component.prototype;
80
- for (const key of Object.keys(proto)) {
81
- const meta = Reflect.getMetadata('propMetadata', component);
82
- if (meta && meta[key]) {
83
- for (const decorator of meta[key]) {
84
- if (decorator.ngMetadataName === 'Input') {
85
- inputs.push(key);
86
- }
87
- }
88
- }
89
- }
81
+ const declaredInputs = component.prototype?.constructor['ɵcmp']?.declaredInputs;
82
+ for (const input of Object.keys(declaredInputs))
83
+ inputs.push(input);
90
84
  return inputs;
91
85
  }
92
- _setInputs(component, inputs, componentInstance) {
93
- const inputProperties = this._getInputProperties(component);
86
+ _setInputs(component, inputs, componentRef) {
87
+ const inputProperties = this._getInputProperties(componentRef.instance);
94
88
  for (const key of inputProperties) {
95
89
  if (inputs[key]) {
96
- componentInstance[key] = inputs[key];
90
+ componentRef.setInput(key, inputs[key]);
97
91
  }
98
92
  }
99
93
  return component;
@@ -107,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
107
101
  providedIn: 'root',
108
102
  }]
109
103
  }] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jMy1jb21wb25lbnRzL3NyYy9saWIvYzMtZGlhbG9nL3NlcnZpY2VzL2MzLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQW1CLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUVMLHNCQUFzQixHQUN2QixNQUFNLDJDQUEyQyxDQUFDO0FBQ25ELE9BQU8sRUFFTCx1QkFBdUIsR0FDeEIsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLGtCQUFrQixDQUFDOztBQUsxQixNQUFNLE9BQU8sZUFBZTtJQUNqQixPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXJDOzs7OztPQUtHO0lBQ0ksT0FBTyxDQUFDLElBQW1CO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzFELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU87WUFDNUIsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUNILElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTO29CQUNsRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUztpQkFDckQ7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTO29CQUN0RCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVTtpQkFDdEQ7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxpQkFBaUIsQ0FBVSxHQUFHLEVBQUUsQ0FDekMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FDMUQsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBVSxJQUFrQjtRQUN2QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDakMsdUJBQXVCLEVBQ3ZCO1lBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksT0FBTztZQUM1QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPO1lBQ2xDLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUMvQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUMzQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLE1BQU0sRUFBRTtvQkFDTixLQUFLLEVBQ0gsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ2xFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTO2lCQUNyRDtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVM7b0JBQ3RELElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVO2lCQUN0RDthQUNGO1NBQ0YsQ0FDRixDQUFDO1FBRUYsT0FBTyxJQUFJLGlCQUFpQixDQUFRLEdBQUcsRUFBRSxDQUN2QyxhQUFhLENBQ1gsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUM3RCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQseUJBQXlCLENBQUksRUFDM0IsSUFBSSxFQUNKLEdBQUcsTUFBTSxFQUlUO1FBQ0EsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUksU0FBUyxFQUFFO1lBQzdDLEdBQUcsTUFBTTtTQUNWLENBQUMsQ0FBQztRQUVILHFDQUFxQztRQUNyQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFckMsSUFBSSxLQUFLLENBQUMsTUFBTTtZQUNkLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUU5RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sbUJBQW1CLENBQUksU0FBa0I7UUFDL0MsTUFBTSxNQUFNLEdBQW1CLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBRWxDLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN0QixLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNsQyxJQUFJLFNBQVMsQ0FBQyxjQUFjLEtBQUssT0FBTyxFQUFFLENBQUM7d0JBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBYyxDQUFDLENBQUM7b0JBQzlCLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFVBQVUsQ0FDaEIsU0FBa0IsRUFDbEIsTUFBeUMsRUFDekMsaUJBQW9CO1FBRXBCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RCxLQUFLLE1BQU0sR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ2xDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQVEsQ0FBQztZQUM5QyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OEdBN0hVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICBDb25maXJtQ29uZmlnLFxuICBDb25maXJtRGlhbG9nQ29tcG9uZW50LFxufSBmcm9tICcuLi9jb21wb25lbnRzL2MzLWRpYWxvZy1jb25maXJtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBQcm9tcHRDb25maWcsXG4gIEMzUHJvbXB0RGlhbG9nQ29tcG9uZW50LFxufSBmcm9tICcuLi9jb21wb25lbnRzL2MzLWRpYWxvZy1wcm9tcHQuY29tcG9uZW50JztcbmltcG9ydCB7IEMzRXh0YW5kZWRQcm9taXNlIH0gZnJvbSAnLi4vLi4vYzMtZXh0YW5kZWQtcHJvbWlzZSc7XG5pbXBvcnQgeyBsYXN0VmFsdWVGcm9tLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDM0RpYWxvZ1NlcnZpY2Uge1xuICByZWFkb25seSAjZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgY29uZmlybSBkaWFsb2cgYW5kIHJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgdXNlciBhY2NlcHRlZCBvciByZWplY3RlZCB0aGUgY29uZmlybWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0NvbmZpcm1Db25maWd9IGRhdGEgQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgY29uZmlybSBkaWFsb2cuIFNlZSBDb25maXJtQ29uZmlnIGJlbG93LlxuICAgKiBAcmV0dXJucyB7QzNFeHRlbmRlZFByb21pc2U8Ym9vbGVhbj59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGB0cnVlYCBpZiB0aGUgdXNlciBhY2NlcHRlZCB0aGUgY29uZmlybWF0aW9uLCBhbmQgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgY29uZmlybShkYXRhOiBDb25maXJtQ29uZmlnKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy4jZGlhbG9nLm9wZW4oQ29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6IGRhdGEud2lkdGggfHwgJzI1MHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgdGV4dDogZGF0YS50ZXh0LFxuICAgICAgICByZWplY3Q6IHtcbiAgICAgICAgICBjb2xvcjpcbiAgICAgICAgICAgIGRhdGEucmVqZWN0ICYmIGRhdGEucmVqZWN0LmNvbG9yID8gZGF0YS5yZWplY3QuY29sb3IgOiB1bmRlZmluZWQsXG4gICAgICAgICAgdGV4dDogKGRhdGEucmVqZWN0ICYmIGRhdGEucmVqZWN0LnRleHQpIHx8ICdBbm51bGVyJyxcbiAgICAgICAgfSxcbiAgICAgICAgYWNjZXB0OiB7XG4gICAgICAgICAgY29sb3I6IChkYXRhLmFjY2VwdCAmJiBkYXRhLmFjY2VwdC5jb2xvcikgfHwgJ3ByaW1hcnknLFxuICAgICAgICAgIHRleHQ6IChkYXRhLmFjY2VwdCAmJiBkYXRhLmFjY2VwdC50ZXh0KSB8fCAnQWNjZXB0ZXInLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgQzNFeHRhbmRlZFByb21pc2U8Ym9vbGVhbj4oKCkgPT5cbiAgICAgIGxhc3RWYWx1ZUZyb20oZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZShtYXAoQm9vbGVhbikpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBwcm9tcHQgZGlhbG9nIGFuZCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSB2YWx1ZSBlbnRlcmVkIGJ5IHRoZSB1c2VyLCBvciBgZmFsc2VgIGlmIHRoZSB1c2VyIGNhbmNlbGxlZCB0aGUgcHJvbXB0LlxuICAgKlxuICAgKiBAcGFyYW0ge1Byb21wdENvbmZpZ30gZGF0YSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBwcm9tcHQgZGlhbG9nLiBTZWUgUHJvbXB0Q29uZmlnIGJlbG93LlxuICAgKiBAcmV0dXJucyB7QzNFeHRlbmRlZFByb21pc2U8ZmFsc2UgfCBUPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHZhbHVlIGVudGVyZWQgYnkgdGhlIHVzZXIsIG9yIGBmYWxzZWAgaWYgdGhlIHVzZXIgY2FuY2VsbGVkIHRoZSBwcm9tcHQuXG4gICAqL1xuICBwdWJsaWMgcHJvbXB0PFQgPSBhbnk+KGRhdGE6IFByb21wdENvbmZpZyk6IEMzRXh0YW5kZWRQcm9taXNlPGZhbHNlIHwgVD4ge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuI2RpYWxvZy5vcGVuPEMzUHJvbXB0RGlhbG9nQ29tcG9uZW50LCBhbnksIFQ+KFxuICAgICAgQzNQcm9tcHREaWFsb2dDb21wb25lbnQsXG4gICAgICB7XG4gICAgICAgIHdpZHRoOiBkYXRhLndpZHRoIHx8ICcyNTBweCcsXG4gICAgICAgIG1heFdpZHRoOiBkYXRhLm1heFdpZHRoIHx8ICcxMDB2dycsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICB0ZXh0OiBkYXRhLnRleHQsXG4gICAgICAgICAgZGVmYXVsdFZhbHVlOiBkYXRhLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogZGF0YS5wbGFjZWhvbGRlcixcbiAgICAgICAgICBtdWx0aWxpbmU6IGRhdGEubXVsdGlsaW5lLFxuICAgICAgICAgIHZhbGlkYXRvcnM6IGRhdGEudmFsaWRhdG9ycyxcbiAgICAgICAgICByZXF1aXJlZDogZGF0YS5yZXF1aXJlZCxcbiAgICAgICAgICByZWplY3Q6IHtcbiAgICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgICBkYXRhLnJlamVjdCAmJiBkYXRhLnJlamVjdC5jb2xvciA/IGRhdGEucmVqZWN0LmNvbG9yIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdGV4dDogKGRhdGEucmVqZWN0ICYmIGRhdGEucmVqZWN0LnRleHQpIHx8ICdBbm51bGVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFjY2VwdDoge1xuICAgICAgICAgICAgY29sb3I6IChkYXRhLmFjY2VwdCAmJiBkYXRhLmFjY2VwdC5jb2xvcikgfHwgJ3ByaW1hcnknLFxuICAgICAgICAgICAgdGV4dDogKGRhdGEuYWNjZXB0ICYmIGRhdGEuYWNjZXB0LnRleHQpIHx8ICdBY2NlcHRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICApO1xuXG4gICAgcmV0dXJuIG5ldyBDM0V4dGFuZGVkUHJvbWlzZTxmYWxzZT4oKCkgPT5cbiAgICAgIGxhc3RWYWx1ZUZyb20oXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUobWFwKCh2YWx1ZSkgPT4gdmFsdWUgfHwgZmFsc2UpKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBjcmVhdGVEaWFsb2dGcm9tQ29tcG9uZW50PEM+KHtcbiAgICBkYXRhLFxuICAgIC4uLmNvbmZpZ1xuICB9OiBNYXREaWFsb2dDb25maWc8e1xuICAgIGNvbXBvbmVudDogQ29tcG9uZW50VHlwZTxDPjtcbiAgICBpbnB1dHM/OiBQYXJ0aWFsPFJlY29yZDxrZXlvZiBDLCB1bmtub3duPj47XG4gIH0+KSB7XG4gICAgaWYgKCFkYXRhPy5jb21wb25lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gY29tcG9uZW50IHByb3ZpZGVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBjb21wb25lbnQsIC4uLl9kYXRhIH0gPSBkYXRhO1xuICAgIGNvbnN0IGRpYWxvZyA9IHRoaXMuI2RpYWxvZy5vcGVuPEM+KGNvbXBvbmVudCwge1xuICAgICAgLi4uY29uZmlnLFxuICAgIH0pO1xuXG4gICAgLy8gZGV0ZWN0IHRoZSBpbnB1dHMgb2YgdGhlIGNvbXBvbmVudFxuICAgIGNvbnN0IHsgY29tcG9uZW50SW5zdGFuY2UgfSA9IGRpYWxvZztcblxuICAgIGlmIChfZGF0YS5pbnB1dHMpXG4gICAgICB0aGlzLl9zZXRJbnB1dHMoY29tcG9uZW50LCBfZGF0YS5pbnB1dHMsIGNvbXBvbmVudEluc3RhbmNlKTtcblxuICAgIHJldHVybiBkaWFsb2c7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnB1dFByb3BlcnRpZXM8Qz4oY29tcG9uZW50OiBUeXBlPEM+KTogQXJyYXk8a2V5b2YgQz4ge1xuICAgIGNvbnN0IGlucHV0czogQXJyYXk8a2V5b2YgQz4gPSBbXTtcbiAgICBjb25zdCBwcm90byA9IGNvbXBvbmVudC5wcm90b3R5cGU7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwcm90bykpIHtcbiAgICAgIGNvbnN0IG1ldGEgPSBSZWZsZWN0LmdldE1ldGFkYXRhKCdwcm9wTWV0YWRhdGEnLCBjb21wb25lbnQpO1xuICAgICAgaWYgKG1ldGEgJiYgbWV0YVtrZXldKSB7XG4gICAgICAgIGZvciAoY29uc3QgZGVjb3JhdG9yIG9mIG1ldGFba2V5XSkge1xuICAgICAgICAgIGlmIChkZWNvcmF0b3IubmdNZXRhZGF0YU5hbWUgPT09ICdJbnB1dCcpIHtcbiAgICAgICAgICAgIGlucHV0cy5wdXNoKGtleSBhcyBrZXlvZiBDKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gaW5wdXRzO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0SW5wdXRzPEM+KFxuICAgIGNvbXBvbmVudDogVHlwZTxDPixcbiAgICBpbnB1dHM6IFBhcnRpYWw8UmVjb3JkPGtleW9mIEMsIHVua25vd24+PixcbiAgICBjb21wb25lbnRJbnN0YW5jZTogQ1xuICApIHtcbiAgICBjb25zdCBpbnB1dFByb3BlcnRpZXMgPSB0aGlzLl9nZXRJbnB1dFByb3BlcnRpZXMoY29tcG9uZW50KTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBpbnB1dFByb3BlcnRpZXMpIHtcbiAgICAgIGlmIChpbnB1dHNba2V5XSkge1xuICAgICAgICBjb21wb25lbnRJbnN0YW5jZVtrZXldID0gaW5wdXRzW2tleV0gYXMgYW55O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29tcG9uZW50O1xuICB9XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYzMtZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jMy1jb21wb25lbnRzL3NyYy9saWIvYzMtZGlhbG9nL3NlcnZpY2VzL2MzLWRpYWxvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFFTCxzQkFBc0IsR0FDdkIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0sMENBQTBDLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxrQkFBa0IsQ0FBQzs7QUFLMUIsTUFBTSxPQUFPLGVBQWU7SUFDakIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVyQzs7Ozs7T0FLRztJQUNJLE9BQU8sQ0FBQyxJQUFtQjtRQUNoQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMxRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxPQUFPO1lBQzVCLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsTUFBTSxFQUFFO29CQUNOLEtBQUssRUFDSCxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUztvQkFDbEUsSUFBSSxFQUFFLENBQUMs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S0FBSyxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXpFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxtQkFBbUIsQ0FBSSxTQUFrQjtRQUMvQyxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsTUFBTSxjQUFjLEdBQ2xCLFNBQVMsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGNBQWMsQ0FBQztRQUMzRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sVUFBVSxDQUNoQixTQUFrQixFQUNsQixNQUF5QyxFQUN6QyxZQUE2QjtRQUU3QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQzlDLFlBQVksQ0FBQyxRQUFtQixDQUNqQyxDQUFDO1FBQ0YsS0FBSyxNQUFNLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNsQyxJQUFJLE1BQU0sQ0FBQyxHQUFjLENBQUMsRUFBRSxDQUFDO2dCQUMzQixZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBYyxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7OEdBdEhVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlLCBUeXBlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7XG4gIENvbmZpcm1Db25maWcsXG4gIENvbmZpcm1EaWFsb2dDb21wb25lbnQsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYzMtZGlhbG9nLWNvbmZpcm0uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIFByb21wdENvbmZpZyxcbiAgQzNQcm9tcHREaWFsb2dDb21wb25lbnQsXG59IGZyb20gJy4uL2NvbXBvbmVudHMvYzMtZGlhbG9nLXByb21wdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQzNFeHRhbmRlZFByb21pc2UgfSBmcm9tICcuLi8uLi9jMy1leHRhbmRlZC1wcm9taXNlJztcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20sIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEMzRGlhbG9nU2VydmljZSB7XG4gIHJlYWRvbmx5ICNkaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcblxuICAvKipcbiAgICogT3BlbnMgYSBjb25maXJtIGRpYWxvZyBhbmQgcmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSB1c2VyIGFjY2VwdGVkIG9yIHJlamVjdGVkIHRoZSBjb25maXJtYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7Q29uZmlybUNvbmZpZ30gZGF0YSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBjb25maXJtIGRpYWxvZy4gU2VlIENvbmZpcm1Db25maWcgYmVsb3cuXG4gICAqIEByZXR1cm5zIHtDM0V4dGVuZGVkUHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYHRydWVgIGlmIHRoZSB1c2VyIGFjY2VwdGVkIHRoZSBjb25maXJtYXRpb24sIGFuZCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBjb25maXJtKGRhdGE6IENvbmZpcm1Db25maWcpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLiNkaWFsb2cub3BlbihDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogZGF0YS53aWR0aCB8fCAnMjUwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0ZXh0OiBkYXRhLnRleHQsXG4gICAgICAgIHJlamVjdDoge1xuICAgICAgICAgIGNvbG9yOlxuICAgICAgICAgICAgZGF0YS5yZWplY3QgJiYgZGF0YS5yZWplY3QuY29sb3IgPyBkYXRhLnJlamVjdC5jb2xvciA6IHVuZGVmaW5lZCxcbiAgICAgICAgICB0ZXh0OiAoZGF0YS5yZWplY3QgJiYgZGF0YS5yZWplY3QudGV4dCkgfHwgJ0FubnVsZXInLFxuICAgICAgICB9LFxuICAgICAgICBhY2NlcHQ6IHtcbiAgICAgICAgICBjb2xvcjogKGRhdGEuYWNjZXB0ICYmIGRhdGEuYWNjZXB0LmNvbG9yKSB8fCAncHJpbWFyeScsXG4gICAgICAgICAgdGV4dDogKGRhdGEuYWNjZXB0ICYmIGRhdGEuYWNjZXB0LnRleHQpIHx8ICdBY2NlcHRlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5ldyBDM0V4dGFuZGVkUHJvbWlzZTxib29sZWFuPigoKSA9PlxuICAgICAgbGFzdFZhbHVlRnJvbShkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKG1hcChCb29sZWFuKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIHByb21wdCBkaWFsb2cgYW5kIHJldHVybnMgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHZhbHVlIGVudGVyZWQgYnkgdGhlIHVzZXIsIG9yIGBmYWxzZWAgaWYgdGhlIHVzZXIgY2FuY2VsbGVkIHRoZSBwcm9tcHQuXG4gICAqXG4gICAqIEBwYXJhbSB7UHJvbXB0Q29uZmlnfSBkYXRhIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHByb21wdCBkaWFsb2cuIFNlZSBQcm9tcHRDb25maWcgYmVsb3cuXG4gICAqIEByZXR1cm5zIHtDM0V4dGVuZGVkUHJvbWlzZTxmYWxzZSB8IFQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgdmFsdWUgZW50ZXJlZCBieSB0aGUgdXNlciwgb3IgYGZhbHNlYCBpZiB0aGUgdXNlciBjYW5jZWxsZWQgdGhlIHByb21wdC5cbiAgICovXG4gIHB1YmxpYyBwcm9tcHQ8VCA9IGFueT4oZGF0YTogUHJvbXB0Q29uZmlnKTogQzNFeHRhbmRlZFByb21pc2U8ZmFsc2UgfCBUPiB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy4jZGlhbG9nLm9wZW48QzNQcm9tcHREaWFsb2dDb21wb25lbnQsIGFueSwgVD4oXG4gICAgICBDM1Byb21wdERpYWxvZ0NvbXBvbmVudCxcbiAgICAgIHtcbiAgICAgICAgd2lkdGg6IGRhdGEud2lkdGggfHwgJzI1MHB4JyxcbiAgICAgICAgbWF4V2lkdGg6IGRhdGEubWF4V2lkdGggfHwgJzEwMHZ3JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHRleHQ6IGRhdGEudGV4dCxcbiAgICAgICAgICBkZWZhdWx0VmFsdWU6IGRhdGEuZGVmYXVsdFZhbHVlLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiBkYXRhLnBsYWNlaG9sZGVyLFxuICAgICAgICAgIG11bHRpbGluZTogZGF0YS5tdWx0aWxpbmUsXG4gICAgICAgICAgdmFsaWRhdG9yczogZGF0YS52YWxpZGF0b3JzLFxuICAgICAgICAgIHJlcXVpcmVkOiBkYXRhLnJlcXVpcmVkLFxuICAgICAgICAgIHJlamVjdDoge1xuICAgICAgICAgICAgY29sb3I6XG4gICAgICAgICAgICAgIGRhdGEucmVqZWN0ICYmIGRhdGEucmVqZWN0LmNvbG9yID8gZGF0YS5yZWplY3QuY29sb3IgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB0ZXh0OiAoZGF0YS5yZWplY3QgJiYgZGF0YS5yZWplY3QudGV4dCkgfHwgJ0FubnVsZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWNjZXB0OiB7XG4gICAgICAgICAgICBjb2xvcjogKGRhdGEuYWNjZXB0ICYmIGRhdGEuYWNjZXB0LmNvbG9yKSB8fCAncHJpbWFyeScsXG4gICAgICAgICAgICB0ZXh0OiAoZGF0YS5hY2NlcHQgJiYgZGF0YS5hY2NlcHQudGV4dCkgfHwgJ0FjY2VwdGVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICk7XG5cbiAgICByZXR1cm4gbmV3IEMzRXh0YW5kZWRQcm9taXNlPGZhbHNlPigoKSA9PlxuICAgICAgbGFzdFZhbHVlRnJvbShcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZShtYXAoKHZhbHVlKSA9PiB2YWx1ZSB8fCBmYWxzZSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZURpYWxvZ0Zyb21Db21wb25lbnQ8Qz4oe1xuICAgIGRhdGEsXG4gICAgLi4uY29uZmlnXG4gIH06IE1hdERpYWxvZ0NvbmZpZzx7XG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEM+O1xuICAgIGlucHV0cz86IFBhcnRpYWw8UmVjb3JkPGtleW9mIEMsIHVua25vd24+PjtcbiAgfT4pIHtcbiAgICBpZiAoIWRhdGE/LmNvbXBvbmVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBjb21wb25lbnQgcHJvdmlkZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IGNvbXBvbmVudCwgLi4uX2RhdGEgfSA9IGRhdGE7XG4gICAgY29uc3QgZGlhbG9nID0gdGhpcy4jZGlhbG9nLm9wZW48Qz4oY29tcG9uZW50LCB7XG4gICAgICAuLi5jb25maWcsXG4gICAgfSk7XG5cbiAgICAvLyBkZXRlY3QgdGhlIGlucHV0cyBvZiB0aGUgY29tcG9uZW50XG4gICAgY29uc3QgeyBjb21wb25lbnRSZWYgfSA9IGRpYWxvZztcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuIGRpYWxvZztcblxuICAgIGlmIChfZGF0YS5pbnB1dHMpIHRoaXMuX3NldElucHV0cyhjb21wb25lbnQsIF9kYXRhLmlucHV0cywgY29tcG9uZW50UmVmKTtcblxuICAgIHJldHVybiBkaWFsb2c7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnB1dFByb3BlcnRpZXM8Qz4oY29tcG9uZW50OiBUeXBlPEM+KSB7XG4gICAgY29uc3QgaW5wdXRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGRlY2xhcmVkSW5wdXRzOiBQYXJ0aWFsPFJlY29yZDxrZXlvZiBDLCBzdHJpbmc+PiA9XG4gICAgICBjb21wb25lbnQucHJvdG90eXBlPy5jb25zdHJ1Y3RvclsnybVjbXAnXT8uZGVjbGFyZWRJbnB1dHM7XG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiBPYmplY3Qua2V5cyhkZWNsYXJlZElucHV0cykpIGlucHV0cy5wdXNoKGlucHV0KTtcblxuICAgIHJldHVybiBpbnB1dHM7XG4gIH1cblxuICBwcml2YXRlIF9zZXRJbnB1dHM8Qz4oXG4gICAgY29tcG9uZW50OiBUeXBlPEM+LFxuICAgIGlucHV0czogUGFydGlhbDxSZWNvcmQ8a2V5b2YgQywgdW5rbm93bj4+LFxuICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPEM+XG4gICkge1xuICAgIGNvbnN0IGlucHV0UHJvcGVydGllcyA9IHRoaXMuX2dldElucHV0UHJvcGVydGllcyhcbiAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBUeXBlPEM+XG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBpbnB1dFByb3BlcnRpZXMpIHtcbiAgICAgIGlmIChpbnB1dHNba2V5IGFzIGtleW9mIENdKSB7XG4gICAgICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChrZXksIGlucHV0c1trZXkgYXMga2V5b2YgQ10pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29tcG9uZW50O1xuICB9XG59XG4iXX0=
@@ -441,31 +441,25 @@ class C3DialogService {
441
441
  ...config,
442
442
  });
443
443
  // detect the inputs of the component
444
- const { componentInstance } = dialog;
444
+ const { componentRef } = dialog;
445
+ if (!componentRef)
446
+ return dialog;
445
447
  if (_data.inputs)
446
- this._setInputs(component, _data.inputs, componentInstance);
448
+ this._setInputs(component, _data.inputs, componentRef);
447
449
  return dialog;
448
450
  }
449
451
  _getInputProperties(component) {
450
452
  const inputs = [];
451
- const proto = component.prototype;
452
- for (const key of Object.keys(proto)) {
453
- const meta = Reflect.getMetadata('propMetadata', component);
454
- if (meta && meta[key]) {
455
- for (const decorator of meta[key]) {
456
- if (decorator.ngMetadataName === 'Input') {
457
- inputs.push(key);
458
- }
459
- }
460
- }
461
- }
453
+ const declaredInputs = component.prototype?.constructor['ɵcmp']?.declaredInputs;
454
+ for (const input of Object.keys(declaredInputs))
455
+ inputs.push(input);
462
456
  return inputs;
463
457
  }
464
- _setInputs(component, inputs, componentInstance) {
465
- const inputProperties = this._getInputProperties(component);
458
+ _setInputs(component, inputs, componentRef) {
459
+ const inputProperties = this._getInputProperties(componentRef.instance);
466
460
  for (const key of inputProperties) {
467
461
  if (inputs[key]) {
468
- componentInstance[key] = inputs[key];
462
+ componentRef.setInput(key, inputs[key]);
469
463
  }
470
464
  }
471
465
  return component;
@@ -1 +1 @@
1
- {"version":3,"file":"c3-components.mjs","sources":["../../../projects/c3-components/src/lib/c3-dropdown/components/c3-dropdown.component.ts","../../../projects/c3-components/src/lib/c3-dropdown/directives/c3-dropdown.trigger.ts","../../../projects/c3-components/src/lib/c3-dropdown/c3-dropdown.module.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-confirm.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-prompt.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-embed-child.component.ts","../../../projects/c3-components/src/lib/c3-extanded-promise.ts","../../../projects/c3-components/src/lib/c3-dialog/services/c3-dialog.service.ts","../../../projects/c3-components/src/lib/c3-dialog/c3-dialog.module.ts","../../../projects/c3-components/src/lib/c3-file-viewer/directives/full-screen.directive.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.html","../../../projects/c3-components/src/lib/c3-safe-url/pipes/c3-safe-url.pipe.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/consts/default.config.ts","../../../projects/c3-components/src/lib/c3-file-viewer/models/custom-file-event.model.ts","../../../projects/c3-components/src/lib/c3-file-viewer/models/file-viewer.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/c3-file-viewer.module.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.html","../../../projects/c3-components/src/lib/c3-auto-animate/C3AutoAnimate.directive.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion/c3-expansion.component.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion/c3-expansion.component.html","../../../projects/c3-components/src/lib/c3-expansion/c3-expansion.module.ts","../../../projects/c3-components/src/public-api.ts","../../../projects/c3-components/src/c3-components.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n TemplateRef,\n ViewChild,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n selector: 'c3-dropdown',\n template: `\n <ng-template>\n <div class=\"c3-dropdown-panel\" [ngClass]=\"dropdownClass\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n `,\n})\nexport class C3DropdownComponent implements OnChanges {\n @ViewChild(TemplateRef) template!: TemplateRef<any>;\n\n /** Classes to be added to the container of the content. Supports the same syntax as `ngClass`. */\n @Input()\n dropdownClass: string | string[] | Set<string> | { [key: string]: any } = '';\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['dropdownClass']) {\n this._markForCheck();\n }\n }\n\n _markForCheck(): void {\n this._changeDetectorRef.markForCheck();\n }\n}\n","import {\n Directive,\n forwardRef,\n ElementRef,\n ViewContainerRef,\n Input,\n OnDestroy,\n HostListener,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { C3DropdownComponent } from '../components/c3-dropdown.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { merge, Subject, Subscription, takeUntil } from 'rxjs';\n\nexport const MAT_DROPDOWN_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => C3DropdownTrigger),\n multi: true,\n};\n\n/**\n * @description The C3DropdownTrigger directive is used to display or hide a dropdown menu\n * C3DropdownComponent when an item is clicked.\n * @selector [c3Dropdown]\n * @exportAs c3DropdownTrigger\n * @input c3Dropdown - A reference to an instance of C3DropdownComponent.\n * @input c3DropdownDisabled - A boolean indicating whether the directive should be disabled.\n * @input c3DropdownClass - A string, an array of strings, a set of strings or a\n * object representing the CSS classes to be applied to the dropdown menu.\n */\n@Directive({\n selector: '[c3Dropdown]',\n exportAs: 'c3DropdownTrigger',\n providers: [MAT_DROPDOWN_VALUE_ACCESSOR],\n})\nexport class C3DropdownTrigger implements OnChanges, OnDestroy {\n private overlayRef?: OverlayRef | null;\n private _closingActionsSubscription: Subscription = Subscription.EMPTY;\n private _destroyed = new Subject<void>();\n\n private _dropdownClass:\n | string\n | string[]\n | Set<string>\n | { [key: string]: any } = '';\n\n private _dropdownDisabled: boolean = false;\n\n /** The dropdown menu instance */\n @Input('c3Dropdown')\n dropdown?: C3DropdownComponent;\n\n /** Whether the dropdown is disabled. */\n @Input('c3DropdownDisabled')\n get dropdownDisabled(): boolean {\n return this._dropdownDisabled;\n }\n set dropdownDisabled(value: boolean) {\n this._dropdownDisabled = coerceBooleanProperty(value);\n }\n\n /** Classes to be passed to the dropdown menu. Supports the same syntax as `ngClass`. */\n @Input('c3DropdownClass')\n dropdownClass: string | string[] | Set<string> | { [key: string]: any } = '';\n\n constructor(\n private _element: ElementRef<HTMLElement>,\n private _overlay: Overlay,\n private _viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener('click')\n onClick() {\n this.show();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['dropdownClass'] && this.dropdown) {\n this.dropdown.dropdownClass = this._dropdownClass;\n this.dropdown._markForCheck();\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._closingActionsSubscription.unsubscribe();\n this.close();\n }\n\n public show(): void {\n if (!this.dropdown) return;\n\n const overlayRef = this._overlay.create(this._getOverlayConfig());\n const portal = new TemplatePortal(\n this.dropdown.template,\n this._viewContainerRef\n );\n overlayRef.attach(portal);\n\n this.overlayRef = overlayRef;\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(\n () => this.close()\n );\n }\n\n public close(): void {\n if (this.overlayRef && this.overlayRef.hasAttached())\n this.overlayRef.detach();\n }\n\n private _getOverlayConfig(): OverlayConfig {\n const belowPosition: ConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n };\n const abovePosition: ConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n\n // The overlay edge connected to the trigger should have squared corners, while\n // the opposite end has rounded corners. We apply a CSS class to swap the\n // border-radius based on the overlay position.\n panelClass: 'mat-autocomplete-panel-above',\n };\n\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._element)\n .withLockedPosition()\n .withPositions([belowPosition, abovePosition]);\n\n return new OverlayConfig({\n positionStrategy,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n hasBackdrop: true,\n });\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this.overlayRef!.backdropClick();\n const detachments = this.overlayRef!.detachments();\n\n return merge(backdrop, detachments).pipe(takeUntil(this._destroyed));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3DropdownComponent } from './components/c3-dropdown.component';\nimport { C3DropdownTrigger } from './directives/c3-dropdown.trigger';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@NgModule({\n imports: [CommonModule, OverlayModule],\n declarations: [C3DropdownComponent, C3DropdownTrigger],\n exports: [C3DropdownComponent, C3DropdownTrigger],\n})\nexport class C3DropdownModule {}\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface ConfirmConfig {\r\n text: string;\r\n placeholder?: string;\r\n reject?: {\r\n color?: string;\r\n text?: string;\r\n };\r\n accept?: {\r\n color?: string;\r\n text: string;\r\n };\r\n width?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ConfirmDialogComponent',\r\n template: `\r\n <mat-dialog-content>\r\n <div [innerHtml]=\"data.text\"></div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"flex flex-row justify-end items-center\">\r\n <button mat-button mat-dialog-close [color]=\"data.reject?.color\">\r\n {{ data.reject?.text }}\r\n </button>\r\n <button mat-button [color]=\"data.accept?.color\" [mat-dialog-close]=\"true\">\r\n {{ data.accept?.text }}\r\n </button>\r\n </mat-dialog-actions>\r\n `,\r\n})\r\nexport class ConfirmDialogComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: ConfirmConfig\r\n ) {}\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { FormBuilder, FormControl, ValidatorFn } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface PromptConfig {\r\n text: string;\r\n defaultValue?: string;\r\n placeholder?: string;\r\n multiline?: boolean;\r\n validators?: ValidatorFn | ValidatorFn[];\r\n required?: boolean;\r\n reject?: {\r\n color: string;\r\n text: string;\r\n };\r\n accept?: {\r\n color: string;\r\n text: string;\r\n };\r\n width?: string;\r\n maxWidth?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'PrompDialogComponent',\r\n template: `\r\n <div mat-dialog-title>{{ data.text }}</div>\r\n <mat-dialog-content>\r\n <mat-form-field>\r\n <mat-label *ngIf=\"data.placeholder\">{{ data.placeholder }}</mat-label>\r\n <input\r\n *ngIf=\"!data.multiline\"\r\n matInput\r\n [formControl]=\"result\"\r\n (keydown.enter)=\"dialogRef.close(result.value)\"\r\n />\r\n <textarea\r\n *ngIf=\"data.multiline\"\r\n matInput\r\n [formControl]=\"result\"\r\n cdkTextareaAutosize\r\n ></textarea>\r\n </mat-form-field>\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"center\">\r\n <button mat-raised-button mat-dialog-close [class]=\"data.reject?.color\">\r\n {{ data.reject?.text }}\r\n </button>\r\n <button\r\n mat-raised-button\r\n [disabled]=\"result.invalid || (data.required && !result.value)\"\r\n [class]=\"data.accept?.color\"\r\n [mat-dialog-close]=\"result.value\"\r\n >\r\n {{ data.accept?.text }}\r\n </button>\r\n </mat-dialog-actions>\r\n `,\r\n styles: [\r\n `\r\n mat-form-field {\r\n width: 100%;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class C3PromptDialogComponent {\r\n result: FormControl;\r\n constructor(\r\n public dialogRef: MatDialogRef<C3PromptDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: PromptConfig,\r\n private _fb: FormBuilder\r\n ) {\r\n this.result = this._fb.control(data.defaultValue, data.validators);\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Inject,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'C3DialogEmbedChildComponent',\n template: `<mat-dialog-content>\n <ng-template #target></ng-template>\n </mat-dialog-content>`,\n styles: [],\n})\nexport class C3DialogEmbedChildComponent<ComponenyType>\n implements AfterViewInit\n{\n @ViewChild('target', { read: ViewContainerRef }) target!: ViewContainerRef;\n\n createdComponent?: ComponentRef<ComponenyType>;\n\n constructor(\n public dialogRef: MatDialogRef<C3DialogEmbedChildComponent<ComponenyType>>,\n @Inject(MAT_DIALOG_DATA)\n public data: {\n component: Type<ComponenyType>;\n },\n private _cdr: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n this.createdComponent = this.target.createComponent(this.data.component);\n this._cdr.detectChanges();\n }\n}\n","import { Observable } from 'rxjs';\n\nexport class C3ExtandedPromise<T> extends Promise<T> {\n constructor(\n executor: (\n resolve: (value: T | PromiseLike<T>) => void,\n reject: (reason?: any) => void\n ) => void\n ) {\n super(executor);\n }\n\n public toObservable(): Observable<T> {\n return new Observable<T>((observer) => {\n this.then((value) => {\n observer.next(value);\n observer.complete();\n }).catch((err) => observer.error(err));\n });\n }\n}\n","import { Injectable, Type, inject } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport {\n ConfirmConfig,\n ConfirmDialogComponent,\n} from '../components/c3-dialog-confirm.component';\nimport {\n PromptConfig,\n C3PromptDialogComponent,\n} from '../components/c3-dialog-prompt.component';\nimport { C3ExtandedPromise } from '../../c3-extanded-promise';\nimport { lastValueFrom, map } from 'rxjs';\nimport { ComponentType } from '@angular/cdk/portal';\nimport 'reflect-metadata';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class C3DialogService {\n readonly #dialog = inject(MatDialog);\n\n /**\n * Opens a confirm dialog and returns a promise that resolves to a boolean indicating whether the user accepted or rejected the confirmation.\n *\n * @param {ConfirmConfig} data Configuration options for the confirm dialog. See ConfirmConfig below.\n * @returns {C3ExtendedPromise<boolean>} A promise that resolves to `true` if the user accepted the confirmation, and `false` otherwise.\n */\n public confirm(data: ConfirmConfig) {\n const dialogRef = this.#dialog.open(ConfirmDialogComponent, {\n width: data.width || '250px',\n data: {\n text: data.text,\n reject: {\n color:\n data.reject && data.reject.color ? data.reject.color : undefined,\n text: (data.reject && data.reject.text) || 'Annuler',\n },\n accept: {\n color: (data.accept && data.accept.color) || 'primary',\n text: (data.accept && data.accept.text) || 'Accepter',\n },\n },\n });\n\n return new C3ExtandedPromise<boolean>(() =>\n lastValueFrom(dialogRef.afterClosed().pipe(map(Boolean)))\n );\n }\n\n /**\n * Opens a prompt dialog and returns a promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.\n *\n * @param {PromptConfig} data Configuration options for the prompt dialog. See PromptConfig below.\n * @returns {C3ExtendedPromise<false | T>} A promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.\n */\n public prompt<T = any>(data: PromptConfig): C3ExtandedPromise<false | T> {\n const dialogRef = this.#dialog.open<C3PromptDialogComponent, any, T>(\n C3PromptDialogComponent,\n {\n width: data.width || '250px',\n maxWidth: data.maxWidth || '100vw',\n data: {\n text: data.text,\n defaultValue: data.defaultValue,\n placeholder: data.placeholder,\n multiline: data.multiline,\n validators: data.validators,\n required: data.required,\n reject: {\n color:\n data.reject && data.reject.color ? data.reject.color : undefined,\n text: (data.reject && data.reject.text) || 'Annuler',\n },\n accept: {\n color: (data.accept && data.accept.color) || 'primary',\n text: (data.accept && data.accept.text) || 'Accepter',\n },\n },\n }\n );\n\n return new C3ExtandedPromise<false>(() =>\n lastValueFrom(\n dialogRef.afterClosed().pipe(map((value) => value || false))\n )\n );\n }\n\n createDialogFromComponent<C>({\n data,\n ...config\n }: MatDialogConfig<{\n component: ComponentType<C>;\n inputs?: Partial<Record<keyof C, unknown>>;\n }>) {\n if (!data?.component) {\n throw new Error('No component provided');\n }\n\n const { component, ..._data } = data;\n const dialog = this.#dialog.open<C>(component, {\n ...config,\n });\n\n // detect the inputs of the component\n const { componentInstance } = dialog;\n\n if (_data.inputs)\n this._setInputs(component, _data.inputs, componentInstance);\n\n return dialog;\n }\n\n private _getInputProperties<C>(component: Type<C>): Array<keyof C> {\n const inputs: Array<keyof C> = [];\n const proto = component.prototype;\n\n for (const key of Object.keys(proto)) {\n const meta = Reflect.getMetadata('propMetadata', component);\n if (meta && meta[key]) {\n for (const decorator of meta[key]) {\n if (decorator.ngMetadataName === 'Input') {\n inputs.push(key as keyof C);\n }\n }\n }\n }\n\n return inputs;\n }\n\n private _setInputs<C>(\n component: Type<C>,\n inputs: Partial<Record<keyof C, unknown>>,\n componentInstance: C\n ) {\n const inputProperties = this._getInputProperties(component);\n for (const key of inputProperties) {\n if (inputs[key]) {\n componentInstance[key] = inputs[key] as any;\n }\n }\n return component;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { ConfirmDialogComponent } from './components/c3-dialog-confirm.component';\nimport { C3DialogEmbedChildComponent } from './components/c3-dialog-embed-child.component';\nimport { C3PromptDialogComponent } from './components/c3-dialog-prompt.component';\nimport { C3DialogService } from './services/c3-dialog.service';\n\n@NgModule({\n declarations: [\n ConfirmDialogComponent,\n C3PromptDialogComponent,\n C3DialogEmbedChildComponent,\n ],\n imports: [\n CommonModule,\n MatDialogModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n providers: [C3DialogService],\n})\nexport class C3DialogModule {}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { BehaviorSubject, debounceTime, filter, skip } from 'rxjs';\n\n@Directive({\n selector: '[C3FullScreen], [c3-full-screen]',\n})\nexport class FullScreenDirective {\n @Input('c3Screenfull')\n set fullscreenState(value: Boolean | null) {\n this._fullscreenState.next(value?.valueOf() || false);\n }\n\n @Input('c3-full-screen')\n set fullscreenStateSetter(value: Boolean | null) {\n this.fullscreenState = value;\n }\n\n private _fullscreenState = new BehaviorSubject(false);\n\n constructor(private el: ElementRef) {\n this._fullscreenState\n .pipe(\n filter((value) => value !== null),\n skip(2),\n debounceTime(100)\n )\n .subscribe(() => {\n this.defineState();\n });\n }\n\n private defineState() {\n if (this._fullscreenState.getValue()) {\n const element: any = this.el.nativeElement;\n\n const requestMethod =\n element.requestFullscreen ||\n element.webkitRequestFullScreen ||\n element.mozRequestFullScreen ||\n element.msRequestFullScreen;\n\n if (requestMethod) {\n // Native full screen.\n requestMethod.call(element);\n } else {\n console.log('FullScreen Request Method Not Supported on this browser.');\n }\n } else {\n const element: any = document;\n\n const requestMethod =\n element.cancelFullscreen ||\n element.webkitExitFullscreen ||\n element.webkitCancelFullScreen ||\n element.mozCancelFullScreen ||\n element.msExitFullScreen;\n\n if (requestMethod) {\n // Native Cancel full screen.\n requestMethod.call(element);\n } else {\n console.log(\n 'FullScreen Cancel Request Method Not Supported on this browser.'\n );\n }\n }\n }\n}\n","import { Component, Host, Input } from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-actions',\n templateUrl: './c3-file-viewer-actions.component.html',\n})\nexport class C3FileViewerActionsComponent {\n @Input()\n fileViewer!: C3FileViewer;\n\n get config() {\n return this.fileViewer.config;\n }\n}\n","<div class=\"nav-button-container\">\n <button\n *ngIf=\"config.btnShow?.prev\"\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.previousImage($event)\"\n [disabled]=\"fileViewer.currentIndex === 0\"\n >\n <span\n *ngIf=\"config.btnIcons?.prev?.classes\"\n [class]=\"config.btnIcons?.prev?.classes\"\n ></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.prev?.text\"\n (click)=\"fileViewer.previousImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.prev?.text }}</span>\n </a>\n <button\n *ngIf=\"config.btnShow?.next\"\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.nextImage($event)\"\n [disabled]=\"fileViewer.currentIndex === fileViewer.files.length - 1\"\n >\n <span\n *ngIf=\"config.btnIcons?.next?.classes\"\n [class]=\"config.btnIcons?.next?.classes\"\n ></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.next?.text\"\n (click)=\"fileViewer.nextImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.next?.text }}</span>\n </a>\n</div>\n\n<!-- Button Container -->\n<div\n class=\"btn-container\"\n [class]=\"config.btnContainerClass\"\n *ngIf=\"fileViewer.currentFile.type.startsWith('image')\"\n>\n <!-- Rotate Counter Clockwise -->\n <ng-container *ngIf=\"config.btnShow?.rotateCounterClockwise\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateCounterClockwise()\"\n *ngIf=\"config.btnIcons?.rotateCounterClockwise?.classes\"\n >\n <span [class]=\"config.btnIcons?.rotateCounterClockwise?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.rotateCounterClockwise?.text\"\n (click)=\"fileViewer.rotateCounterClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateCounterClockwise?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Rotate Clockwise -->\n <ng-container *ngIf=\"config.btnShow?.rotateClockwise\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateClockwise()\"\n *ngIf=\"config.btnIcons?.rotateClockwise?.classes\"\n >\n <span [class]=\"config.btnIcons?.rotateClockwise?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.rotateClockwise?.text\"\n (click)=\"fileViewer.rotateClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateClockwise?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Zoom Out -->\n <ng-container *ngIf=\"config.btnShow?.zoomOut\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomOut()\"\n *ngIf=\"config.btnIcons?.zoomOut?.classes\"\n >\n <span [class]=\"config.btnIcons?.zoomOut?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.zoomOut?.text\"\n (click)=\"fileViewer.zoomOut()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomOut?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Zoom In -->\n <ng-container *ngIf=\"config.btnShow?.zoomIn\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomIn()\"\n *ngIf=\"config.btnIcons?.zoomIn?.classes\"\n >\n <span [class]=\"config.btnIcons?.zoomIn?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.zoomIn?.text\"\n (click)=\"fileViewer.zoomIn()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomIn?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Fullscreen -->\n <ng-container *ngIf=\"config.allowFullscreen\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.toggleFullscreen()\"\n *ngIf=\"config.btnIcons?.fullscreen?.classes\"\n >\n <span [class]=\"config.btnIcons?.fullscreen?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.fullscreen?.text\"\n (click)=\"fileViewer.toggleFullscreen()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.fullscreen?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Reset -->\n <ng-container *ngIf=\"config.btnShow?.reset\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.reset()\"\n *ngIf=\"config.btnIcons?.reset?.classes\"\n >\n <span [class]=\"config.btnIcons?.reset?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.reset?.text\"\n (click)=\"fileViewer.reset()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.reset?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Custom Buttons -->\n <ng-container *ngFor=\"let cBtn of config.customBtns\">\n <button *ngIf=\"cBtn.icon.classes\" type=\"button\" [class]=\"config.btnClass\">\n <span *ngIf=\"cBtn.icon.classes\" [class]=\"cBtn.icon.classes\"></span>\n </button>\n <ng-container *ngIf=\"cBtn.icon.text\">\n <a [class]=\"config.btnClass\" *ngIf=\"cBtn.icon.text\">\n <span [class]=\"config.btnSubClass\">{{ cBtn.icon.text }}</span>\n </a>\n </ng-container>\n </ng-container>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'c3SafeUrl',\n standalone: true,\n})\nexport class C3SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n transform(url: string | null) {\n return url ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : '';\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-image, [c3-file-viewer-image]',\n templateUrl: './c3-file-viewer-image.component.html',\n})\nexport class C3FileViewerImageComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n dragstart = new EventEmitter<DragEvent>();\n}\n","<img\n *ngIf=\"fileViewer.currentFile.objectUrl\"\n [src]=\"fileViewer.currentFile.objectUrl | async | c3SafeUrl\"\n [ngStyle]=\"fileViewer.style\"\n alt=\"Image not found...\"\n (dragstart)=\"dragstart.emit($event)\"\n/>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-pdf',\n templateUrl: './c3-file-viewer-pdf.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n style: 'display: block',\n class: 'c3-file-viewer-pdf',\n },\n})\nexport class C3FileViewerPdfComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n dragstart = new EventEmitter<DragEvent>();\n}\n","<!-- pdf viewer -->\n<embed\n type=\"application/pdf\"\n [src]=\"fileViewer.currentFile.objectUrl | async | c3SafeUrl\"\n [style.height]=\"'100%'\"\n [style.width]=\"'100%'\"\n/>\n","import { Component, Input } from '@angular/core';\nimport { FileMetadata } from '../../models/file-metadata';\nimport { Subject, filter, mergeMap, tap } from 'rxjs';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-video',\n templateUrl: './c3-file-viewer-video.component.html',\n})\nexport class C3FileViewerVideoComponent {\n @Input('file')\n set _srcUpdated({ location }: FileMetadata) {\n this.src$.next(location);\n }\n src = '';\n private src$ = new Subject<string>();\n\n @Input()\n public fileViewer!: C3FileViewer;\n\n constructor() {\n this.src$\n .pipe(\n mergeMap((src) => this.fileViewer.getFile(src)),\n filter((blob) => blob.type.startsWith('application/pdf')),\n tap((blob) => (this.src = URL.createObjectURL(blob)))\n )\n .subscribe({\n next: () => null,\n error: (error) => {\n console.log(error);\n },\n });\n }\n}\n","<video controls [src]=\"src\" crossorigin=\"*\"></video>\n","import {\n Component,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FileViewerConfig } from '../../../models/file-viewer-config.model';\nimport { CustomFileEvent } from '../../../models/custom-file-event.model';\nimport { HttpClient } from '@angular/common/http';\nimport { C3FileViewer } from '../../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer',\n templateUrl: './c3-file-viewer.component.html',\n styleUrls: [],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'c3-file-viewer',\n },\n})\nexport class C3FileViewerComponent implements OnInit {\n @Input()\n public screenHeightOccupied?: 0; // In Px\n\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n public indexChange: EventEmitter<number> = new EventEmitter();\n\n @Output()\n public configChange: EventEmitter<C3FileViewerConfig> = new EventEmitter();\n\n @Output()\n public customFileEvent: EventEmitter<CustomFileEvent> = new EventEmitter();\n\n constructor(\n @Optional() @Inject('config') public moduleConfig: C3FileViewerConfig,\n public _http: HttpClient\n ) {}\n\n ngOnInit() {\n this.defineStyleHeight();\n\n this.fileViewer.customFile$.subscribe((event) => {\n this.customFileEvent.emit(event);\n });\n\n this.fileViewer.index$.subscribe((index) => {\n this.indexChange.emit(index);\n });\n\n this.fileViewer.config$.subscribe((config) => {\n this.configChange.emit(config);\n });\n }\n\n @HostListener('mouseover')\n onMouseOver() {\n this.fileViewer.hovered = true;\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n this.fileViewer.hovered = false;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['screenHeightOccupied'] && this.fileViewer)\n this.defineStyleHeight();\n }\n\n @HostListener('window:keyup.ArrowRight', ['$event'])\n next(event: KeyboardEvent) {\n this.fileViewer.nextImage(event);\n }\n\n @HostListener('window:keyup.ArrowLeft', ['$event'])\n previous(event: KeyboardEvent) {\n this.fileViewer.previousImage(event);\n }\n\n defineStyleHeight() {\n this.fileViewer.styleHeight =\n 'calc(100% - ' + this.screenHeightOccupied + 'px)';\n }\n}\n","<div\n class=\"container\"\n *ngIf=\"fileViewer\"\n [c3-full-screen]=\"fileViewer.fullscreen$ | async\"\n [style.height]=\"fileViewer.styleHeight\"\n [style.backgroundColor]=\"fileViewer.config.containerBackgroundColor\"\n (wheel)=\"fileViewer.scrollZoom($event)\"\n (dragover)=\"fileViewer.onDragOver($event)\"\n>\n <c3-file-viewer-image\n *ngIf=\"fileViewer.currentFile.type.startsWith('image')\"\n [fileViewer]=\"fileViewer\"\n [style]=\"fileViewer.style\"\n (dragstart)=\"fileViewer.onDragStart($event)\"\n />\n\n <c3-file-viewer-video\n *ngIf=\"fileViewer.currentFile.type.startsWith('video')\"\n />\n\n <c3-file-viewer-pdf\n *ngIf=\"fileViewer.currentFile.type.startsWith('application/pdf')\"\n [fileViewer]=\"fileViewer\"\n />\n <!-- Div below will be used to hide the 'ghost' image when dragging -->\n <div></div>\n <div class=\"spinner-container\" *ngIf=\"fileViewer.loading\">\n <div class=\"spinner\"></div>\n </div>\n\n <c3-file-viewer-actions [fileViewer]=\"fileViewer\" />\n</div>\n","import { C3FileViewerConfig } from '../models/file-viewer-config.model';\n\nexport const DEFAULT_CONFIG: C3FileViewerConfig = {\n btnContainerClass: 'btn-container',\n btnClass: 'default',\n btnSubClass: 'material-icons',\n zoomFactor: 0.1,\n containerBackgroundColor: '#00000000',\n wheelZoom: false,\n allowFullscreen: true,\n allowKeyboardNavigation: true,\n btnShow: {\n zoomIn: true,\n zoomOut: true,\n rotateClockwise: true,\n rotateCounterClockwise: true,\n next: true,\n prev: true,\n reset: true,\n },\n btnIcons: {\n zoomIn: {\n text: 'zoom_in',\n },\n zoomOut: {\n text: 'zoom_out',\n },\n rotateClockwise: {\n text: 'rotate_right',\n },\n rotateCounterClockwise: {\n text: 'rotate_left',\n },\n fullscreen: {\n text: 'fullscreen',\n },\n reset: {\n text: 'restore',\n },\n },\n};\n","export class CustomFileEvent {\n public name: string;\n public fileUrl: string;\n\n constructor(name: string, fileUrl: string) {\n this.name = name;\n this.fileUrl = fileUrl;\n }\n}\n","import { BehaviorSubject, Observable, map, tap } from 'rxjs';\nimport { DEFAULT_CONFIG } from '../consts/default.config';\nimport { C3FileViewerConfig } from './file-viewer-config.model';\nimport { HttpClient } from '@angular/common/http';\nimport { CustomFileEvent } from './custom-file-event.model';\nimport { FileMetadata } from './file-metadata';\nimport { inject } from '@angular/core';\n\nexport class C3FileViewer {\n private _config: C3FileViewerConfig = DEFAULT_CONFIG;\n get config(): C3FileViewerConfig {\n return this._config;\n }\n\n set config(value: C3FileViewerConfig) {\n this._config = this.mergeConfig(DEFAULT_CONFIG, value);\n this.config$.next(this._config);\n }\n public config$ = new BehaviorSubject<C3FileViewerConfig>(DEFAULT_CONFIG);\n\n public fullscreen$ = new BehaviorSubject<Boolean>(false);\n\n public customFile$ = new BehaviorSubject<any>(null);\n public index$ = new BehaviorSubject<number>(0);\n public loading: boolean = true;\n public currentIndex: number = 0;\n\n get currentFile(): FileMetadata {\n return this.filesObjectUrl[this.currentIndex];\n }\n\n public style = {\n transform: '',\n msTransform: '',\n oTransform: '',\n webkitTransform: '',\n minHeight: 'auto',\n maxHeight: 'auto',\n height: 'auto',\n minWidth: 'auto',\n maxWidth: 'auto',\n width: 'auto',\n };\n public styleHeight = '100%';\n public hovered = false;\n\n public set files(value: FileMetadata[]) {\n this._files = value;\n this.currentIndex = 0;\n this.index$.next(this.currentIndex);\n\n this.filesObjectUrl = value.map((file) => {\n return {\n ...file,\n objectUrl: file.objectUrl || this.createObjectURL(file),\n };\n });\n }\n\n public get files(): FileMetadata[] {\n return this._files;\n }\n\n private _files: FileMetadata[] = [];\n\n public filesObjectUrl: Array<\n FileMetadata & {\n objectUrl?: Observable<string>;\n }\n > = [];\n\n private scale = 1;\n private rotation = 0;\n private translateX = 0;\n private translateY = 0;\n private prevX: number = 0;\n private prevY: number = 0;\n\n constructor({\n config,\n files,\n }: {\n config?: C3FileViewerConfig;\n files?: FileMetadata[];\n }) {\n if (config) this.config = config;\n if (files) this.files = files;\n\n this.config$.subscribe((config) => {\n const { minHeight, maxHeight, minWidth, maxWidth, height, width } =\n config;\n this.style.minHeight = this.valueToCss(minHeight);\n this.style.height = this.valueToCss(height);\n this.style.width = this.valueToCss(width);\n this.style.maxHeight = this.valueToCss(maxHeight);\n this.style.minWidth = this.valueToCss(minWidth);\n this.style.maxWidth = this.valueToCss(maxWidth);\n this.styleHeight = this.valueToCss(height);\n\n this.updateStyle();\n });\n }\n\n createObjectURL(file: FileMetadata) {\n this.onLoadStart(file);\n return this.getFile(file.location).pipe(\n map((response) => URL.createObjectURL(response)),\n tap(() => this.onLoad(file))\n );\n }\n\n getFile(location: string) {\n const client =\n this.config.customClient ||\n inject(HttpClient).get.bind(inject(HttpClient));\n if (!client) {\n throw new Error(\n 'No http client provided. Please provide a custom client or import HttpClientModule'\n );\n }\n\n return client(location, {\n responseType: 'blob',\n });\n }\n\n previousImage(event: KeyboardEvent | MouseEvent) {\n if (this.canNavigate(event)) {\n this.loading = true;\n if (this.currentIndex > 0) this.currentIndex--;\n else this.currentIndex = this.files.length - 1;\n this.index$.next(this.currentIndex);\n this.reset();\n }\n }\n\n nextImage(event: KeyboardEvent | MouseEvent) {\n if (this.canNavigate(event)) {\n this.loading = true;\n if (this.currentIndex < this.files.length - 1) this.currentIndex++;\n else this.currentIndex = 0;\n this.index$.next(this.currentIndex);\n this.reset();\n }\n }\n\n zoomIn() {\n this.scale *= 1 + (this.config.zoomFactor || 0);\n this.updateStyle();\n }\n\n zoomOut() {\n if (this.scale > (this.config.zoomFactor || 0)) {\n this.scale /= 1 + (this.config.zoomFactor || 0);\n }\n this.updateStyle();\n }\n\n scrollZoom(evt: WheelEvent) {\n if (this.config.wheelZoom) {\n evt.deltaY > 0 ? this.zoomOut() : this.zoomIn();\n return false;\n } else {\n return true;\n }\n }\n\n rotateClockwise() {\n this.rotation += 90;\n this.updateStyle();\n }\n\n rotateCounterClockwise() {\n this.rotation -= 90;\n this.updateStyle();\n }\n\n onLoad(file: FileMetadata) {\n this.loading = false;\n }\n\n onLoadStart(file: FileMetadata) {\n this.loading = true;\n }\n\n imageNotFound(file: FileMetadata) {\n this.loading = false;\n this.customFile$.next(new CustomFileEvent('imageNotFound', file.location));\n }\n\n onDragOver(evt: DragEvent) {\n this.translateX += evt.clientX - this.prevX;\n this.translateY += evt.clientY - this.prevY;\n this.prevX = evt.clientX;\n this.prevY = evt.clientY;\n this.updateStyle();\n }\n\n onDragStart(evt: DragEvent) {\n if (evt.target && evt.dataTransfer && evt.dataTransfer.setDragImage) {\n const target = evt.target as HTMLDivElement;\n const nextElementSibling = target.nextElementSibling as HTMLDivElement;\n\n if (nextElementSibling)\n evt.dataTransfer.setDragImage(nextElementSibling, 0, 0);\n }\n this.prevX = evt.clientX;\n this.prevY = evt.clientY;\n }\n\n toggleFullscreen() {\n const fullScreenValue = this.fullscreen$.getValue();\n this.fullscreen$.next(!fullScreenValue);\n if (fullScreenValue) this.reset();\n }\n\n reset() {\n this.scale = 1;\n this.rotation = 0;\n this.translateX = 0;\n this.translateY = 0;\n this.updateStyle();\n }\n\n private canNavigate(event: any) {\n return (\n event == null || (this.config.allowKeyboardNavigation && this.hovered)\n );\n }\n\n private updateStyle() {\n this.style.transform = `translate(${this.translateX}px, ${this.translateY}px) rotate(${this.rotation}deg) scale(${this.scale})`;\n this.style.msTransform = this.style.transform;\n this.style.webkitTransform = this.style.transform;\n this.style.oTransform = this.style.transform;\n }\n\n private valueToCss(value: number | string | undefined) {\n return value ? (typeof value === 'string' ? value : value + 'px') : 'auto';\n }\n\n private mergeConfig(\n defaultValues: C3FileViewerConfig,\n overrideValues: C3FileViewerConfig\n ): C3FileViewerConfig {\n let result: C3FileViewerConfig = { ...defaultValues };\n if (overrideValues) {\n result = { ...defaultValues, ...overrideValues };\n\n if (overrideValues.btnIcons) {\n result.btnIcons = {\n ...defaultValues.btnIcons,\n ...overrideValues.btnIcons,\n };\n }\n }\n return result;\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { C3FileViewer } from '../../../models/file-viewer';\n\n@Component({\n template: `\n <c3-file-viewer [fileViewer]=\"fileViewer\" [screenHeightOccupied]=\"0\" />\n `,\n})\nexport class C3FileViewerDialog {\n constructor(@Inject(MAT_DIALOG_DATA) public fileViewer: C3FileViewer) {}\n}\n","import { Component, HostListener, Inject, Input } from '@angular/core';\nimport {\n MAT_DIALOG_DATA,\n MatDialog,\n MatDialogConfig,\n} from '@angular/material/dialog';\nimport { C3FileViewer } from '../../../models/file-viewer';\nimport { C3FileViewerDialog } from './c3-file-viewer-dialog';\n\n@Component({\n selector: 'c3-file-viewer-dialog',\n template: ` <ng-content /> `,\n host: {\n class: 'c3-file-viewer-dialog',\n },\n})\nexport class C3FileViewerDialogComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Input()\n public dialogConfig: Partial<MatDialogConfig> = {\n panelClass: 'c3-file-viewer-dialog',\n width: '80%',\n height: '80%',\n };\n\n constructor(private _dialog: MatDialog) {}\n\n @HostListener('click')\n openDialog() {\n this._dialog.open(C3FileViewerDialog, {\n data: this.fileViewer,\n ...this.dialogConfig,\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FullScreenDirective } from './directives/full-screen.directive';\nimport { C3FileViewerComponent } from './components/public/c3-file-viewer/c3-file-viewer.component';\nimport { CommonModule } from '@angular/common';\nimport { C3FileViewerActionsComponent } from './components/c3-file-viewer-actions/c3-file-viewer-actions.component';\nimport { C3FileViewerImageComponent } from './components/c3-file-viewer-image/c3-file-viewer-image.component';\nimport { C3FileViewerPdfComponent } from './components/c3-file-viewer-pdf/c3-file-viewer-pdf.component';\nimport { C3FileViewerVideoComponent } from './components/c3-file-viewer-video/c3-file-viewer-video.component';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { C3SafeUrlPipe } from '../../public-api';\nimport { C3FileViewerDialogComponent } from './components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { C3FileViewerDialog } from './components/public/c3-file-viewer-dialog/c3-file-viewer-dialog';\n\n@NgModule({ declarations: [\n FullScreenDirective,\n C3FileViewerComponent,\n C3FileViewerActionsComponent,\n C3FileViewerImageComponent,\n C3FileViewerPdfComponent,\n C3FileViewerVideoComponent,\n C3FileViewerDialogComponent,\n C3FileViewerDialog,\n ],\n exports: [\n FullScreenDirective,\n C3FileViewerComponent,\n C3FileViewerDialogComponent,\n ], imports: [CommonModule, C3SafeUrlPipe, MatDialogModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\nexport class C3FileViewerModule {}\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n input,\n} from '@angular/core';\nimport { type C3ExpansionComponent } from '../c3-expansion/c3-expansion.component';\n\n@Component({\n selector: 'c3-expansion-header',\n templateUrl: './c3-expansion-header.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class C3ExpansionHeaderComponent {\n public title = input<string>();\n public c3Expansion = input<C3ExpansionComponent>();\n\n @HostBinding('class') get hostClass() {\n return 'c3-expansion-header';\n }\n}\n","<ng-content>\n <h4 class=\"text-lg\" *ngIf=\"title()\">\n {{ title() }}\n </h4>\n <button\n *ngIf=\"c3Expansion()\"\n mat-icon-button\n (click)=\"c3Expansion()?.toggleExpand()\"\n [matTooltip]=\"c3Expansion()?.isExpanded() ? 'Réduire' : 'Développer'\"\n >\n <mat-icon>{{\n c3Expansion()?.isExpanded() ? \"expand_less\" : \"expand_more\"\n }}</mat-icon>\n </button>\n</ng-content>\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\nimport autoAnimate, {\n AutoAnimateOptions,\n AutoAnimationPlugin,\n} from '@formkit/auto-animate';\n\n@Directive({\n selector: '[c3AutoAnimate]',\n standalone: true,\n})\nexport class C3AutoAnimateDirective implements AfterViewInit {\n @Input() options?: Partial<AutoAnimateOptions> | AutoAnimationPlugin;\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n autoAnimate(this.el.nativeElement, this.options);\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n input,\n model,\n} from '@angular/core';\nimport { C3AutoAnimateDirective } from '../../../c3-auto-animate/C3AutoAnimate.directive';\n\n@Component({\n selector: 'c3-expansion',\n templateUrl: './c3-expansion.component.html',\n hostDirectives: [\n {\n directive: C3AutoAnimateDirective,\n inputs: ['options'],\n },\n ],\n})\nexport class C3ExpansionComponent {\n public headerClass = input<string>('c3-expansion-header');\n public isExpanded = model<boolean>(false);\n\n @HostBinding('class') get hostClass() {\n return 'c3-expansion';\n }\n\n constructor(public _elementRef: ElementRef) {}\n\n toggleExpand() {\n this.isExpanded.set(!this.isExpanded());\n }\n}\n","<div [class]=\"headerClass()\">\n <ng-content select=\"c3-expansion-header\">\n <c3-expansion-header [c3Expansion]=\"this\" />\n </ng-content>\n</div>\n\n<div *ngIf=\"isExpanded()\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3ExpansionHeaderComponent } from './components/c3-expansion-header/c3-expansion-header.component';\nimport { C3ExpansionComponent } from './components/c3-expansion/c3-expansion.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { C3AutoAnimateDirective } from '../c3-auto-animate/C3AutoAnimate.directive';\n\n@NgModule({\n declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent],\n imports: [\n CommonModule,\n C3AutoAnimateDirective,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatButtonModule,\n MatToolbarModule,\n ],\n exports: [C3ExpansionComponent, C3ExpansionHeaderComponent],\n})\nexport class C3ExpansionModule {}\n","/*\n * Public API Surface of c3-components\n */\n\nexport * from './lib/c3-file-viewer/models/http.client';\n\n/**\n * Dropdown\n */\nexport * from './lib/c3-dropdown/components/c3-dropdown.component';\nexport * from './lib/c3-dropdown/directives/c3-dropdown.trigger';\nexport * from './lib/c3-dropdown/c3-dropdown.module';\n\n/**\n * Dialog\n */\nexport * from './lib/c3-dialog/components/c3-dialog-confirm.component';\nexport * from './lib/c3-dialog/components/c3-dialog-prompt.component';\nexport * from './lib/c3-dialog/components/c3-dialog-embed-child.component';\nexport * from './lib/c3-dialog/services/c3-dialog.service';\nexport * from './lib/c3-dialog/c3-dialog.module';\n\n/**\n * File Viewer\n */\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component';\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog';\nexport * from './lib/c3-file-viewer/directives/full-screen.directive';\nexport * from './lib/c3-file-viewer/models/custom-file-event.model';\nexport * from './lib/c3-file-viewer/models/file-viewer-config.model';\nexport * from './lib/c3-file-viewer/models/file-viewer';\nexport * from './lib/c3-file-viewer/models/file-metadata';\nexport * from './lib/c3-file-viewer/c3-file-viewer.module';\n\n/**\n * Safe Url\n */\nexport * from './lib/c3-safe-url/pipes/c3-safe-url.pipe';\n\n/**\n * Expansion\n */\nexport * from './lib/c3-expansion/c3-expansion.module';\nexport * from './lib/c3-expansion/components/c3-expansion/c3-expansion.component';\nexport * from './lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component';\n\n/**\n * Auto Animate\n */\nexport * from './lib/c3-auto-animate/C3AutoAnimate.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i2.C3SafeUrlPipe","i3.FullScreenDirective","i4.C3FileViewerActionsComponent","i5.C3FileViewerImageComponent","i6.C3FileViewerPdfComponent","i7.C3FileViewerVideoComponent","i1.C3FileViewerComponent","i3.C3ExpansionHeaderComponent"],"mappings":"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"}
1
+ {"version":3,"file":"c3-components.mjs","sources":["../../../projects/c3-components/src/lib/c3-dropdown/components/c3-dropdown.component.ts","../../../projects/c3-components/src/lib/c3-dropdown/directives/c3-dropdown.trigger.ts","../../../projects/c3-components/src/lib/c3-dropdown/c3-dropdown.module.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-confirm.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-prompt.component.ts","../../../projects/c3-components/src/lib/c3-dialog/components/c3-dialog-embed-child.component.ts","../../../projects/c3-components/src/lib/c3-extanded-promise.ts","../../../projects/c3-components/src/lib/c3-dialog/services/c3-dialog.service.ts","../../../projects/c3-components/src/lib/c3-dialog/c3-dialog.module.ts","../../../projects/c3-components/src/lib/c3-file-viewer/directives/full-screen.directive.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-actions/c3-file-viewer-actions.component.html","../../../projects/c3-components/src/lib/c3-safe-url/pipes/c3-safe-url.pipe.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-image/c3-file-viewer-image.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-pdf/c3-file-viewer-pdf.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/c3-file-viewer-video/c3-file-viewer-video.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component.html","../../../projects/c3-components/src/lib/c3-file-viewer/consts/default.config.ts","../../../projects/c3-components/src/lib/c3-file-viewer/models/custom-file-event.model.ts","../../../projects/c3-components/src/lib/c3-file-viewer/models/file-viewer.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.ts","../../../projects/c3-components/src/lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component.ts","../../../projects/c3-components/src/lib/c3-file-viewer/c3-file-viewer.module.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component.html","../../../projects/c3-components/src/lib/c3-auto-animate/C3AutoAnimate.directive.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion/c3-expansion.component.ts","../../../projects/c3-components/src/lib/c3-expansion/components/c3-expansion/c3-expansion.component.html","../../../projects/c3-components/src/lib/c3-expansion/c3-expansion.module.ts","../../../projects/c3-components/src/public-api.ts","../../../projects/c3-components/src/c3-components.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n TemplateRef,\n ViewChild,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n selector: 'c3-dropdown',\n template: `\n <ng-template>\n <div class=\"c3-dropdown-panel\" [ngClass]=\"dropdownClass\">\n <ng-content></ng-content>\n </div>\n </ng-template>\n `,\n})\nexport class C3DropdownComponent implements OnChanges {\n @ViewChild(TemplateRef) template!: TemplateRef<any>;\n\n /** Classes to be added to the container of the content. Supports the same syntax as `ngClass`. */\n @Input()\n dropdownClass: string | string[] | Set<string> | { [key: string]: any } = '';\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['dropdownClass']) {\n this._markForCheck();\n }\n }\n\n _markForCheck(): void {\n this._changeDetectorRef.markForCheck();\n }\n}\n","import {\n Directive,\n forwardRef,\n ElementRef,\n ViewContainerRef,\n Input,\n OnDestroy,\n HostListener,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n Overlay,\n OverlayRef,\n OverlayConfig,\n ConnectedPosition,\n} from '@angular/cdk/overlay';\nimport { C3DropdownComponent } from '../components/c3-dropdown.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { merge, Subject, Subscription, takeUntil } from 'rxjs';\n\nexport const MAT_DROPDOWN_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => C3DropdownTrigger),\n multi: true,\n};\n\n/**\n * @description The C3DropdownTrigger directive is used to display or hide a dropdown menu\n * C3DropdownComponent when an item is clicked.\n * @selector [c3Dropdown]\n * @exportAs c3DropdownTrigger\n * @input c3Dropdown - A reference to an instance of C3DropdownComponent.\n * @input c3DropdownDisabled - A boolean indicating whether the directive should be disabled.\n * @input c3DropdownClass - A string, an array of strings, a set of strings or a\n * object representing the CSS classes to be applied to the dropdown menu.\n */\n@Directive({\n selector: '[c3Dropdown]',\n exportAs: 'c3DropdownTrigger',\n providers: [MAT_DROPDOWN_VALUE_ACCESSOR],\n})\nexport class C3DropdownTrigger implements OnChanges, OnDestroy {\n private overlayRef?: OverlayRef | null;\n private _closingActionsSubscription: Subscription = Subscription.EMPTY;\n private _destroyed = new Subject<void>();\n\n private _dropdownClass:\n | string\n | string[]\n | Set<string>\n | { [key: string]: any } = '';\n\n private _dropdownDisabled: boolean = false;\n\n /** The dropdown menu instance */\n @Input('c3Dropdown')\n dropdown?: C3DropdownComponent;\n\n /** Whether the dropdown is disabled. */\n @Input('c3DropdownDisabled')\n get dropdownDisabled(): boolean {\n return this._dropdownDisabled;\n }\n set dropdownDisabled(value: boolean) {\n this._dropdownDisabled = coerceBooleanProperty(value);\n }\n\n /** Classes to be passed to the dropdown menu. Supports the same syntax as `ngClass`. */\n @Input('c3DropdownClass')\n dropdownClass: string | string[] | Set<string> | { [key: string]: any } = '';\n\n constructor(\n private _element: ElementRef<HTMLElement>,\n private _overlay: Overlay,\n private _viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener('click')\n onClick() {\n this.show();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['dropdownClass'] && this.dropdown) {\n this.dropdown.dropdownClass = this._dropdownClass;\n this.dropdown._markForCheck();\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._closingActionsSubscription.unsubscribe();\n this.close();\n }\n\n public show(): void {\n if (!this.dropdown) return;\n\n const overlayRef = this._overlay.create(this._getOverlayConfig());\n const portal = new TemplatePortal(\n this.dropdown.template,\n this._viewContainerRef\n );\n overlayRef.attach(portal);\n\n this.overlayRef = overlayRef;\n\n this._closingActionsSubscription = this._menuClosingActions().subscribe(\n () => this.close()\n );\n }\n\n public close(): void {\n if (this.overlayRef && this.overlayRef.hasAttached())\n this.overlayRef.detach();\n }\n\n private _getOverlayConfig(): OverlayConfig {\n const belowPosition: ConnectedPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n };\n const abovePosition: ConnectedPosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n\n // The overlay edge connected to the trigger should have squared corners, while\n // the opposite end has rounded corners. We apply a CSS class to swap the\n // border-radius based on the overlay position.\n panelClass: 'mat-autocomplete-panel-above',\n };\n\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._element)\n .withLockedPosition()\n .withPositions([belowPosition, abovePosition]);\n\n return new OverlayConfig({\n positionStrategy,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n hasBackdrop: true,\n });\n }\n\n /** Returns a stream that emits whenever an action that should close the menu occurs. */\n private _menuClosingActions() {\n const backdrop = this.overlayRef!.backdropClick();\n const detachments = this.overlayRef!.detachments();\n\n return merge(backdrop, detachments).pipe(takeUntil(this._destroyed));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3DropdownComponent } from './components/c3-dropdown.component';\nimport { C3DropdownTrigger } from './directives/c3-dropdown.trigger';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\n@NgModule({\n imports: [CommonModule, OverlayModule],\n declarations: [C3DropdownComponent, C3DropdownTrigger],\n exports: [C3DropdownComponent, C3DropdownTrigger],\n})\nexport class C3DropdownModule {}\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface ConfirmConfig {\r\n text: string;\r\n placeholder?: string;\r\n reject?: {\r\n color?: string;\r\n text?: string;\r\n };\r\n accept?: {\r\n color?: string;\r\n text: string;\r\n };\r\n width?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'ConfirmDialogComponent',\r\n template: `\r\n <mat-dialog-content>\r\n <div [innerHtml]=\"data.text\"></div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions class=\"flex flex-row justify-end items-center\">\r\n <button mat-button mat-dialog-close [color]=\"data.reject?.color\">\r\n {{ data.reject?.text }}\r\n </button>\r\n <button mat-button [color]=\"data.accept?.color\" [mat-dialog-close]=\"true\">\r\n {{ data.accept?.text }}\r\n </button>\r\n </mat-dialog-actions>\r\n `,\r\n})\r\nexport class ConfirmDialogComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef<ConfirmDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: ConfirmConfig\r\n ) {}\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { FormBuilder, FormControl, ValidatorFn } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface PromptConfig {\r\n text: string;\r\n defaultValue?: string;\r\n placeholder?: string;\r\n multiline?: boolean;\r\n validators?: ValidatorFn | ValidatorFn[];\r\n required?: boolean;\r\n reject?: {\r\n color: string;\r\n text: string;\r\n };\r\n accept?: {\r\n color: string;\r\n text: string;\r\n };\r\n width?: string;\r\n maxWidth?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'PrompDialogComponent',\r\n template: `\r\n <div mat-dialog-title>{{ data.text }}</div>\r\n <mat-dialog-content>\r\n <mat-form-field>\r\n <mat-label *ngIf=\"data.placeholder\">{{ data.placeholder }}</mat-label>\r\n <input\r\n *ngIf=\"!data.multiline\"\r\n matInput\r\n [formControl]=\"result\"\r\n (keydown.enter)=\"dialogRef.close(result.value)\"\r\n />\r\n <textarea\r\n *ngIf=\"data.multiline\"\r\n matInput\r\n [formControl]=\"result\"\r\n cdkTextareaAutosize\r\n ></textarea>\r\n </mat-form-field>\r\n </mat-dialog-content>\r\n <mat-dialog-actions align=\"center\">\r\n <button mat-raised-button mat-dialog-close [class]=\"data.reject?.color\">\r\n {{ data.reject?.text }}\r\n </button>\r\n <button\r\n mat-raised-button\r\n [disabled]=\"result.invalid || (data.required && !result.value)\"\r\n [class]=\"data.accept?.color\"\r\n [mat-dialog-close]=\"result.value\"\r\n >\r\n {{ data.accept?.text }}\r\n </button>\r\n </mat-dialog-actions>\r\n `,\r\n styles: [\r\n `\r\n mat-form-field {\r\n width: 100%;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class C3PromptDialogComponent {\r\n result: FormControl;\r\n constructor(\r\n public dialogRef: MatDialogRef<C3PromptDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: PromptConfig,\r\n private _fb: FormBuilder\r\n ) {\r\n this.result = this._fb.control(data.defaultValue, data.validators);\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n Inject,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'C3DialogEmbedChildComponent',\n template: `<mat-dialog-content>\n <ng-template #target></ng-template>\n </mat-dialog-content>`,\n styles: [],\n})\nexport class C3DialogEmbedChildComponent<ComponenyType>\n implements AfterViewInit\n{\n @ViewChild('target', { read: ViewContainerRef }) target!: ViewContainerRef;\n\n createdComponent?: ComponentRef<ComponenyType>;\n\n constructor(\n public dialogRef: MatDialogRef<C3DialogEmbedChildComponent<ComponenyType>>,\n @Inject(MAT_DIALOG_DATA)\n public data: {\n component: Type<ComponenyType>;\n },\n private _cdr: ChangeDetectorRef\n ) {}\n\n ngAfterViewInit() {\n this.createdComponent = this.target.createComponent(this.data.component);\n this._cdr.detectChanges();\n }\n}\n","import { Observable } from 'rxjs';\n\nexport class C3ExtandedPromise<T> extends Promise<T> {\n constructor(\n executor: (\n resolve: (value: T | PromiseLike<T>) => void,\n reject: (reason?: any) => void\n ) => void\n ) {\n super(executor);\n }\n\n public toObservable(): Observable<T> {\n return new Observable<T>((observer) => {\n this.then((value) => {\n observer.next(value);\n observer.complete();\n }).catch((err) => observer.error(err));\n });\n }\n}\n","import { ComponentRef, Injectable, Type, inject } from '@angular/core';\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\nimport {\n ConfirmConfig,\n ConfirmDialogComponent,\n} from '../components/c3-dialog-confirm.component';\nimport {\n PromptConfig,\n C3PromptDialogComponent,\n} from '../components/c3-dialog-prompt.component';\nimport { C3ExtandedPromise } from '../../c3-extanded-promise';\nimport { lastValueFrom, map } from 'rxjs';\nimport { ComponentType } from '@angular/cdk/portal';\nimport 'reflect-metadata';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class C3DialogService {\n readonly #dialog = inject(MatDialog);\n\n /**\n * Opens a confirm dialog and returns a promise that resolves to a boolean indicating whether the user accepted or rejected the confirmation.\n *\n * @param {ConfirmConfig} data Configuration options for the confirm dialog. See ConfirmConfig below.\n * @returns {C3ExtendedPromise<boolean>} A promise that resolves to `true` if the user accepted the confirmation, and `false` otherwise.\n */\n public confirm(data: ConfirmConfig) {\n const dialogRef = this.#dialog.open(ConfirmDialogComponent, {\n width: data.width || '250px',\n data: {\n text: data.text,\n reject: {\n color:\n data.reject && data.reject.color ? data.reject.color : undefined,\n text: (data.reject && data.reject.text) || 'Annuler',\n },\n accept: {\n color: (data.accept && data.accept.color) || 'primary',\n text: (data.accept && data.accept.text) || 'Accepter',\n },\n },\n });\n\n return new C3ExtandedPromise<boolean>(() =>\n lastValueFrom(dialogRef.afterClosed().pipe(map(Boolean)))\n );\n }\n\n /**\n * Opens a prompt dialog and returns a promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.\n *\n * @param {PromptConfig} data Configuration options for the prompt dialog. See PromptConfig below.\n * @returns {C3ExtendedPromise<false | T>} A promise that resolves to the value entered by the user, or `false` if the user cancelled the prompt.\n */\n public prompt<T = any>(data: PromptConfig): C3ExtandedPromise<false | T> {\n const dialogRef = this.#dialog.open<C3PromptDialogComponent, any, T>(\n C3PromptDialogComponent,\n {\n width: data.width || '250px',\n maxWidth: data.maxWidth || '100vw',\n data: {\n text: data.text,\n defaultValue: data.defaultValue,\n placeholder: data.placeholder,\n multiline: data.multiline,\n validators: data.validators,\n required: data.required,\n reject: {\n color:\n data.reject && data.reject.color ? data.reject.color : undefined,\n text: (data.reject && data.reject.text) || 'Annuler',\n },\n accept: {\n color: (data.accept && data.accept.color) || 'primary',\n text: (data.accept && data.accept.text) || 'Accepter',\n },\n },\n }\n );\n\n return new C3ExtandedPromise<false>(() =>\n lastValueFrom(\n dialogRef.afterClosed().pipe(map((value) => value || false))\n )\n );\n }\n\n createDialogFromComponent<C>({\n data,\n ...config\n }: MatDialogConfig<{\n component: ComponentType<C>;\n inputs?: Partial<Record<keyof C, unknown>>;\n }>) {\n if (!data?.component) {\n throw new Error('No component provided');\n }\n\n const { component, ..._data } = data;\n const dialog = this.#dialog.open<C>(component, {\n ...config,\n });\n\n // detect the inputs of the component\n const { componentRef } = dialog;\n if (!componentRef) return dialog;\n\n if (_data.inputs) this._setInputs(component, _data.inputs, componentRef);\n\n return dialog;\n }\n\n private _getInputProperties<C>(component: Type<C>) {\n const inputs: string[] = [];\n const declaredInputs: Partial<Record<keyof C, string>> =\n component.prototype?.constructor['ɵcmp']?.declaredInputs;\n for (const input of Object.keys(declaredInputs)) inputs.push(input);\n\n return inputs;\n }\n\n private _setInputs<C>(\n component: Type<C>,\n inputs: Partial<Record<keyof C, unknown>>,\n componentRef: ComponentRef<C>\n ) {\n const inputProperties = this._getInputProperties(\n componentRef.instance as Type<C>\n );\n for (const key of inputProperties) {\n if (inputs[key as keyof C]) {\n componentRef.setInput(key, inputs[key as keyof C]);\n }\n }\n return component;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { ConfirmDialogComponent } from './components/c3-dialog-confirm.component';\nimport { C3DialogEmbedChildComponent } from './components/c3-dialog-embed-child.component';\nimport { C3PromptDialogComponent } from './components/c3-dialog-prompt.component';\nimport { C3DialogService } from './services/c3-dialog.service';\n\n@NgModule({\n declarations: [\n ConfirmDialogComponent,\n C3PromptDialogComponent,\n C3DialogEmbedChildComponent,\n ],\n imports: [\n CommonModule,\n MatDialogModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n providers: [C3DialogService],\n})\nexport class C3DialogModule {}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { BehaviorSubject, debounceTime, filter, skip } from 'rxjs';\n\n@Directive({\n selector: '[C3FullScreen], [c3-full-screen]',\n})\nexport class FullScreenDirective {\n @Input('c3Screenfull')\n set fullscreenState(value: Boolean | null) {\n this._fullscreenState.next(value?.valueOf() || false);\n }\n\n @Input('c3-full-screen')\n set fullscreenStateSetter(value: Boolean | null) {\n this.fullscreenState = value;\n }\n\n private _fullscreenState = new BehaviorSubject(false);\n\n constructor(private el: ElementRef) {\n this._fullscreenState\n .pipe(\n filter((value) => value !== null),\n skip(2),\n debounceTime(100)\n )\n .subscribe(() => {\n this.defineState();\n });\n }\n\n private defineState() {\n if (this._fullscreenState.getValue()) {\n const element: any = this.el.nativeElement;\n\n const requestMethod =\n element.requestFullscreen ||\n element.webkitRequestFullScreen ||\n element.mozRequestFullScreen ||\n element.msRequestFullScreen;\n\n if (requestMethod) {\n // Native full screen.\n requestMethod.call(element);\n } else {\n console.log('FullScreen Request Method Not Supported on this browser.');\n }\n } else {\n const element: any = document;\n\n const requestMethod =\n element.cancelFullscreen ||\n element.webkitExitFullscreen ||\n element.webkitCancelFullScreen ||\n element.mozCancelFullScreen ||\n element.msExitFullScreen;\n\n if (requestMethod) {\n // Native Cancel full screen.\n requestMethod.call(element);\n } else {\n console.log(\n 'FullScreen Cancel Request Method Not Supported on this browser.'\n );\n }\n }\n }\n}\n","import { Component, Host, Input } from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-actions',\n templateUrl: './c3-file-viewer-actions.component.html',\n})\nexport class C3FileViewerActionsComponent {\n @Input()\n fileViewer!: C3FileViewer;\n\n get config() {\n return this.fileViewer.config;\n }\n}\n","<div class=\"nav-button-container\">\n <button\n *ngIf=\"config.btnShow?.prev\"\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.previousImage($event)\"\n [disabled]=\"fileViewer.currentIndex === 0\"\n >\n <span\n *ngIf=\"config.btnIcons?.prev?.classes\"\n [class]=\"config.btnIcons?.prev?.classes\"\n ></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.prev?.text\"\n (click)=\"fileViewer.previousImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.prev?.text }}</span>\n </a>\n <button\n *ngIf=\"config.btnShow?.next\"\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.nextImage($event)\"\n [disabled]=\"fileViewer.currentIndex === fileViewer.files.length - 1\"\n >\n <span\n *ngIf=\"config.btnIcons?.next?.classes\"\n [class]=\"config.btnIcons?.next?.classes\"\n ></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.next?.text\"\n (click)=\"fileViewer.nextImage($event)\"\n >\n <span [class]=\"config.btnSubClass\">{{ config.btnIcons?.next?.text }}</span>\n </a>\n</div>\n\n<!-- Button Container -->\n<div\n class=\"btn-container\"\n [class]=\"config.btnContainerClass\"\n *ngIf=\"fileViewer.currentFile.type.startsWith('image')\"\n>\n <!-- Rotate Counter Clockwise -->\n <ng-container *ngIf=\"config.btnShow?.rotateCounterClockwise\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateCounterClockwise()\"\n *ngIf=\"config.btnIcons?.rotateCounterClockwise?.classes\"\n >\n <span [class]=\"config.btnIcons?.rotateCounterClockwise?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.rotateCounterClockwise?.text\"\n (click)=\"fileViewer.rotateCounterClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateCounterClockwise?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Rotate Clockwise -->\n <ng-container *ngIf=\"config.btnShow?.rotateClockwise\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.rotateClockwise()\"\n *ngIf=\"config.btnIcons?.rotateClockwise?.classes\"\n >\n <span [class]=\"config.btnIcons?.rotateClockwise?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.rotateClockwise?.text\"\n (click)=\"fileViewer.rotateClockwise()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.rotateClockwise?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Zoom Out -->\n <ng-container *ngIf=\"config.btnShow?.zoomOut\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomOut()\"\n *ngIf=\"config.btnIcons?.zoomOut?.classes\"\n >\n <span [class]=\"config.btnIcons?.zoomOut?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.zoomOut?.text\"\n (click)=\"fileViewer.zoomOut()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomOut?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Zoom In -->\n <ng-container *ngIf=\"config.btnShow?.zoomIn\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.zoomIn()\"\n *ngIf=\"config.btnIcons?.zoomIn?.classes\"\n >\n <span [class]=\"config.btnIcons?.zoomIn?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.zoomIn?.text\"\n (click)=\"fileViewer.zoomIn()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.zoomIn?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Fullscreen -->\n <ng-container *ngIf=\"config.allowFullscreen\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.toggleFullscreen()\"\n *ngIf=\"config.btnIcons?.fullscreen?.classes\"\n >\n <span [class]=\"config.btnIcons?.fullscreen?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.fullscreen?.text\"\n (click)=\"fileViewer.toggleFullscreen()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.fullscreen?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Reset -->\n <ng-container *ngIf=\"config.btnShow?.reset\">\n <button\n type=\"button\"\n [class]=\"config.btnClass\"\n (click)=\"fileViewer.reset()\"\n *ngIf=\"config.btnIcons?.reset?.classes\"\n >\n <span [class]=\"config.btnIcons?.reset?.classes\"></span>\n </button>\n <a\n [class]=\"config.btnClass\"\n *ngIf=\"config.btnIcons?.reset?.text\"\n (click)=\"fileViewer.reset()\"\n >\n <span [class]=\"config.btnSubClass\">{{\n config.btnIcons?.reset?.text\n }}</span>\n </a>\n </ng-container>\n\n <!-- Custom Buttons -->\n <ng-container *ngFor=\"let cBtn of config.customBtns\">\n <button *ngIf=\"cBtn.icon.classes\" type=\"button\" [class]=\"config.btnClass\">\n <span *ngIf=\"cBtn.icon.classes\" [class]=\"cBtn.icon.classes\"></span>\n </button>\n <ng-container *ngIf=\"cBtn.icon.text\">\n <a [class]=\"config.btnClass\" *ngIf=\"cBtn.icon.text\">\n <span [class]=\"config.btnSubClass\">{{ cBtn.icon.text }}</span>\n </a>\n </ng-container>\n </ng-container>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Pipe({\n name: 'c3SafeUrl',\n standalone: true,\n})\nexport class C3SafeUrlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n transform(url: string | null) {\n return url ? this.sanitizer.bypassSecurityTrustResourceUrl(url) : '';\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-image, [c3-file-viewer-image]',\n templateUrl: './c3-file-viewer-image.component.html',\n})\nexport class C3FileViewerImageComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n dragstart = new EventEmitter<DragEvent>();\n}\n","<img\n *ngIf=\"fileViewer.currentFile.objectUrl\"\n [src]=\"fileViewer.currentFile.objectUrl | async | c3SafeUrl\"\n [ngStyle]=\"fileViewer.style\"\n alt=\"Image not found...\"\n (dragstart)=\"dragstart.emit($event)\"\n/>\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-pdf',\n templateUrl: './c3-file-viewer-pdf.component.html',\n encapsulation: ViewEncapsulation.None,\n host: {\n style: 'display: block',\n class: 'c3-file-viewer-pdf',\n },\n})\nexport class C3FileViewerPdfComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n dragstart = new EventEmitter<DragEvent>();\n}\n","<!-- pdf viewer -->\n<embed\n type=\"application/pdf\"\n [src]=\"fileViewer.currentFile.objectUrl | async | c3SafeUrl\"\n [style.height]=\"'100%'\"\n [style.width]=\"'100%'\"\n/>\n","import { Component, Input } from '@angular/core';\nimport { FileMetadata } from '../../models/file-metadata';\nimport { Subject, filter, mergeMap, tap } from 'rxjs';\nimport { C3FileViewer } from '../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer-video',\n templateUrl: './c3-file-viewer-video.component.html',\n})\nexport class C3FileViewerVideoComponent {\n @Input('file')\n set _srcUpdated({ location }: FileMetadata) {\n this.src$.next(location);\n }\n src = '';\n private src$ = new Subject<string>();\n\n @Input()\n public fileViewer!: C3FileViewer;\n\n constructor() {\n this.src$\n .pipe(\n mergeMap((src) => this.fileViewer.getFile(src)),\n filter((blob) => blob.type.startsWith('application/pdf')),\n tap((blob) => (this.src = URL.createObjectURL(blob)))\n )\n .subscribe({\n next: () => null,\n error: (error) => {\n console.log(error);\n },\n });\n }\n}\n","<video controls [src]=\"src\" crossorigin=\"*\"></video>\n","import {\n Component,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { C3FileViewerConfig } from '../../../models/file-viewer-config.model';\nimport { CustomFileEvent } from '../../../models/custom-file-event.model';\nimport { HttpClient } from '@angular/common/http';\nimport { C3FileViewer } from '../../../models/file-viewer';\n\n@Component({\n selector: 'c3-file-viewer',\n templateUrl: './c3-file-viewer.component.html',\n styleUrls: [],\n encapsulation: ViewEncapsulation.None,\n host: {\n class: 'c3-file-viewer',\n },\n})\nexport class C3FileViewerComponent implements OnInit {\n @Input()\n public screenHeightOccupied?: 0; // In Px\n\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Output()\n public indexChange: EventEmitter<number> = new EventEmitter();\n\n @Output()\n public configChange: EventEmitter<C3FileViewerConfig> = new EventEmitter();\n\n @Output()\n public customFileEvent: EventEmitter<CustomFileEvent> = new EventEmitter();\n\n constructor(\n @Optional() @Inject('config') public moduleConfig: C3FileViewerConfig,\n public _http: HttpClient\n ) {}\n\n ngOnInit() {\n this.defineStyleHeight();\n\n this.fileViewer.customFile$.subscribe((event) => {\n this.customFileEvent.emit(event);\n });\n\n this.fileViewer.index$.subscribe((index) => {\n this.indexChange.emit(index);\n });\n\n this.fileViewer.config$.subscribe((config) => {\n this.configChange.emit(config);\n });\n }\n\n @HostListener('mouseover')\n onMouseOver() {\n this.fileViewer.hovered = true;\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n this.fileViewer.hovered = false;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['screenHeightOccupied'] && this.fileViewer)\n this.defineStyleHeight();\n }\n\n @HostListener('window:keyup.ArrowRight', ['$event'])\n next(event: KeyboardEvent) {\n this.fileViewer.nextImage(event);\n }\n\n @HostListener('window:keyup.ArrowLeft', ['$event'])\n previous(event: KeyboardEvent) {\n this.fileViewer.previousImage(event);\n }\n\n defineStyleHeight() {\n this.fileViewer.styleHeight =\n 'calc(100% - ' + this.screenHeightOccupied + 'px)';\n }\n}\n","<div\n class=\"container\"\n *ngIf=\"fileViewer\"\n [c3-full-screen]=\"fileViewer.fullscreen$ | async\"\n [style.height]=\"fileViewer.styleHeight\"\n [style.backgroundColor]=\"fileViewer.config.containerBackgroundColor\"\n (wheel)=\"fileViewer.scrollZoom($event)\"\n (dragover)=\"fileViewer.onDragOver($event)\"\n>\n <c3-file-viewer-image\n *ngIf=\"fileViewer.currentFile.type.startsWith('image')\"\n [fileViewer]=\"fileViewer\"\n [style]=\"fileViewer.style\"\n (dragstart)=\"fileViewer.onDragStart($event)\"\n />\n\n <c3-file-viewer-video\n *ngIf=\"fileViewer.currentFile.type.startsWith('video')\"\n />\n\n <c3-file-viewer-pdf\n *ngIf=\"fileViewer.currentFile.type.startsWith('application/pdf')\"\n [fileViewer]=\"fileViewer\"\n />\n <!-- Div below will be used to hide the 'ghost' image when dragging -->\n <div></div>\n <div class=\"spinner-container\" *ngIf=\"fileViewer.loading\">\n <div class=\"spinner\"></div>\n </div>\n\n <c3-file-viewer-actions [fileViewer]=\"fileViewer\" />\n</div>\n","import { C3FileViewerConfig } from '../models/file-viewer-config.model';\n\nexport const DEFAULT_CONFIG: C3FileViewerConfig = {\n btnContainerClass: 'btn-container',\n btnClass: 'default',\n btnSubClass: 'material-icons',\n zoomFactor: 0.1,\n containerBackgroundColor: '#00000000',\n wheelZoom: false,\n allowFullscreen: true,\n allowKeyboardNavigation: true,\n btnShow: {\n zoomIn: true,\n zoomOut: true,\n rotateClockwise: true,\n rotateCounterClockwise: true,\n next: true,\n prev: true,\n reset: true,\n },\n btnIcons: {\n zoomIn: {\n text: 'zoom_in',\n },\n zoomOut: {\n text: 'zoom_out',\n },\n rotateClockwise: {\n text: 'rotate_right',\n },\n rotateCounterClockwise: {\n text: 'rotate_left',\n },\n fullscreen: {\n text: 'fullscreen',\n },\n reset: {\n text: 'restore',\n },\n },\n};\n","export class CustomFileEvent {\n public name: string;\n public fileUrl: string;\n\n constructor(name: string, fileUrl: string) {\n this.name = name;\n this.fileUrl = fileUrl;\n }\n}\n","import { BehaviorSubject, Observable, map, tap } from 'rxjs';\nimport { DEFAULT_CONFIG } from '../consts/default.config';\nimport { C3FileViewerConfig } from './file-viewer-config.model';\nimport { HttpClient } from '@angular/common/http';\nimport { CustomFileEvent } from './custom-file-event.model';\nimport { FileMetadata } from './file-metadata';\nimport { inject } from '@angular/core';\n\nexport class C3FileViewer {\n private _config: C3FileViewerConfig = DEFAULT_CONFIG;\n get config(): C3FileViewerConfig {\n return this._config;\n }\n\n set config(value: C3FileViewerConfig) {\n this._config = this.mergeConfig(DEFAULT_CONFIG, value);\n this.config$.next(this._config);\n }\n public config$ = new BehaviorSubject<C3FileViewerConfig>(DEFAULT_CONFIG);\n\n public fullscreen$ = new BehaviorSubject<Boolean>(false);\n\n public customFile$ = new BehaviorSubject<any>(null);\n public index$ = new BehaviorSubject<number>(0);\n public loading: boolean = true;\n public currentIndex: number = 0;\n\n get currentFile(): FileMetadata {\n return this.filesObjectUrl[this.currentIndex];\n }\n\n public style = {\n transform: '',\n msTransform: '',\n oTransform: '',\n webkitTransform: '',\n minHeight: 'auto',\n maxHeight: 'auto',\n height: 'auto',\n minWidth: 'auto',\n maxWidth: 'auto',\n width: 'auto',\n };\n public styleHeight = '100%';\n public hovered = false;\n\n public set files(value: FileMetadata[]) {\n this._files = value;\n this.currentIndex = 0;\n this.index$.next(this.currentIndex);\n\n this.filesObjectUrl = value.map((file) => {\n return {\n ...file,\n objectUrl: file.objectUrl || this.createObjectURL(file),\n };\n });\n }\n\n public get files(): FileMetadata[] {\n return this._files;\n }\n\n private _files: FileMetadata[] = [];\n\n public filesObjectUrl: Array<\n FileMetadata & {\n objectUrl?: Observable<string>;\n }\n > = [];\n\n private scale = 1;\n private rotation = 0;\n private translateX = 0;\n private translateY = 0;\n private prevX: number = 0;\n private prevY: number = 0;\n\n constructor({\n config,\n files,\n }: {\n config?: C3FileViewerConfig;\n files?: FileMetadata[];\n }) {\n if (config) this.config = config;\n if (files) this.files = files;\n\n this.config$.subscribe((config) => {\n const { minHeight, maxHeight, minWidth, maxWidth, height, width } =\n config;\n this.style.minHeight = this.valueToCss(minHeight);\n this.style.height = this.valueToCss(height);\n this.style.width = this.valueToCss(width);\n this.style.maxHeight = this.valueToCss(maxHeight);\n this.style.minWidth = this.valueToCss(minWidth);\n this.style.maxWidth = this.valueToCss(maxWidth);\n this.styleHeight = this.valueToCss(height);\n\n this.updateStyle();\n });\n }\n\n createObjectURL(file: FileMetadata) {\n this.onLoadStart(file);\n return this.getFile(file.location).pipe(\n map((response) => URL.createObjectURL(response)),\n tap(() => this.onLoad(file))\n );\n }\n\n getFile(location: string) {\n const client =\n this.config.customClient ||\n inject(HttpClient).get.bind(inject(HttpClient));\n if (!client) {\n throw new Error(\n 'No http client provided. Please provide a custom client or import HttpClientModule'\n );\n }\n\n return client(location, {\n responseType: 'blob',\n });\n }\n\n previousImage(event: KeyboardEvent | MouseEvent) {\n if (this.canNavigate(event)) {\n this.loading = true;\n if (this.currentIndex > 0) this.currentIndex--;\n else this.currentIndex = this.files.length - 1;\n this.index$.next(this.currentIndex);\n this.reset();\n }\n }\n\n nextImage(event: KeyboardEvent | MouseEvent) {\n if (this.canNavigate(event)) {\n this.loading = true;\n if (this.currentIndex < this.files.length - 1) this.currentIndex++;\n else this.currentIndex = 0;\n this.index$.next(this.currentIndex);\n this.reset();\n }\n }\n\n zoomIn() {\n this.scale *= 1 + (this.config.zoomFactor || 0);\n this.updateStyle();\n }\n\n zoomOut() {\n if (this.scale > (this.config.zoomFactor || 0)) {\n this.scale /= 1 + (this.config.zoomFactor || 0);\n }\n this.updateStyle();\n }\n\n scrollZoom(evt: WheelEvent) {\n if (this.config.wheelZoom) {\n evt.deltaY > 0 ? this.zoomOut() : this.zoomIn();\n return false;\n } else {\n return true;\n }\n }\n\n rotateClockwise() {\n this.rotation += 90;\n this.updateStyle();\n }\n\n rotateCounterClockwise() {\n this.rotation -= 90;\n this.updateStyle();\n }\n\n onLoad(file: FileMetadata) {\n this.loading = false;\n }\n\n onLoadStart(file: FileMetadata) {\n this.loading = true;\n }\n\n imageNotFound(file: FileMetadata) {\n this.loading = false;\n this.customFile$.next(new CustomFileEvent('imageNotFound', file.location));\n }\n\n onDragOver(evt: DragEvent) {\n this.translateX += evt.clientX - this.prevX;\n this.translateY += evt.clientY - this.prevY;\n this.prevX = evt.clientX;\n this.prevY = evt.clientY;\n this.updateStyle();\n }\n\n onDragStart(evt: DragEvent) {\n if (evt.target && evt.dataTransfer && evt.dataTransfer.setDragImage) {\n const target = evt.target as HTMLDivElement;\n const nextElementSibling = target.nextElementSibling as HTMLDivElement;\n\n if (nextElementSibling)\n evt.dataTransfer.setDragImage(nextElementSibling, 0, 0);\n }\n this.prevX = evt.clientX;\n this.prevY = evt.clientY;\n }\n\n toggleFullscreen() {\n const fullScreenValue = this.fullscreen$.getValue();\n this.fullscreen$.next(!fullScreenValue);\n if (fullScreenValue) this.reset();\n }\n\n reset() {\n this.scale = 1;\n this.rotation = 0;\n this.translateX = 0;\n this.translateY = 0;\n this.updateStyle();\n }\n\n private canNavigate(event: any) {\n return (\n event == null || (this.config.allowKeyboardNavigation && this.hovered)\n );\n }\n\n private updateStyle() {\n this.style.transform = `translate(${this.translateX}px, ${this.translateY}px) rotate(${this.rotation}deg) scale(${this.scale})`;\n this.style.msTransform = this.style.transform;\n this.style.webkitTransform = this.style.transform;\n this.style.oTransform = this.style.transform;\n }\n\n private valueToCss(value: number | string | undefined) {\n return value ? (typeof value === 'string' ? value : value + 'px') : 'auto';\n }\n\n private mergeConfig(\n defaultValues: C3FileViewerConfig,\n overrideValues: C3FileViewerConfig\n ): C3FileViewerConfig {\n let result: C3FileViewerConfig = { ...defaultValues };\n if (overrideValues) {\n result = { ...defaultValues, ...overrideValues };\n\n if (overrideValues.btnIcons) {\n result.btnIcons = {\n ...defaultValues.btnIcons,\n ...overrideValues.btnIcons,\n };\n }\n }\n return result;\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { C3FileViewer } from '../../../models/file-viewer';\n\n@Component({\n template: `\n <c3-file-viewer [fileViewer]=\"fileViewer\" [screenHeightOccupied]=\"0\" />\n `,\n})\nexport class C3FileViewerDialog {\n constructor(@Inject(MAT_DIALOG_DATA) public fileViewer: C3FileViewer) {}\n}\n","import { Component, HostListener, Inject, Input } from '@angular/core';\nimport {\n MAT_DIALOG_DATA,\n MatDialog,\n MatDialogConfig,\n} from '@angular/material/dialog';\nimport { C3FileViewer } from '../../../models/file-viewer';\nimport { C3FileViewerDialog } from './c3-file-viewer-dialog';\n\n@Component({\n selector: 'c3-file-viewer-dialog',\n template: ` <ng-content /> `,\n host: {\n class: 'c3-file-viewer-dialog',\n },\n})\nexport class C3FileViewerDialogComponent {\n @Input()\n public fileViewer!: C3FileViewer;\n\n @Input()\n public dialogConfig: Partial<MatDialogConfig> = {\n panelClass: 'c3-file-viewer-dialog',\n width: '80%',\n height: '80%',\n };\n\n constructor(private _dialog: MatDialog) {}\n\n @HostListener('click')\n openDialog() {\n this._dialog.open(C3FileViewerDialog, {\n data: this.fileViewer,\n ...this.dialogConfig,\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FullScreenDirective } from './directives/full-screen.directive';\nimport { C3FileViewerComponent } from './components/public/c3-file-viewer/c3-file-viewer.component';\nimport { CommonModule } from '@angular/common';\nimport { C3FileViewerActionsComponent } from './components/c3-file-viewer-actions/c3-file-viewer-actions.component';\nimport { C3FileViewerImageComponent } from './components/c3-file-viewer-image/c3-file-viewer-image.component';\nimport { C3FileViewerPdfComponent } from './components/c3-file-viewer-pdf/c3-file-viewer-pdf.component';\nimport { C3FileViewerVideoComponent } from './components/c3-file-viewer-video/c3-file-viewer-video.component';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { C3SafeUrlPipe } from '../../public-api';\nimport { C3FileViewerDialogComponent } from './components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { C3FileViewerDialog } from './components/public/c3-file-viewer-dialog/c3-file-viewer-dialog';\n\n@NgModule({ declarations: [\n FullScreenDirective,\n C3FileViewerComponent,\n C3FileViewerActionsComponent,\n C3FileViewerImageComponent,\n C3FileViewerPdfComponent,\n C3FileViewerVideoComponent,\n C3FileViewerDialogComponent,\n C3FileViewerDialog,\n ],\n exports: [\n FullScreenDirective,\n C3FileViewerComponent,\n C3FileViewerDialogComponent,\n ], imports: [CommonModule, C3SafeUrlPipe, MatDialogModule], providers: [provideHttpClient(withInterceptorsFromDi())] })\nexport class C3FileViewerModule {}\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n input,\n} from '@angular/core';\nimport { type C3ExpansionComponent } from '../c3-expansion/c3-expansion.component';\n\n@Component({\n selector: 'c3-expansion-header',\n templateUrl: './c3-expansion-header.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class C3ExpansionHeaderComponent {\n public title = input<string>();\n public c3Expansion = input<C3ExpansionComponent>();\n\n @HostBinding('class') get hostClass() {\n return 'c3-expansion-header';\n }\n}\n","<ng-content>\n <h4 class=\"text-lg\" *ngIf=\"title()\">\n {{ title() }}\n </h4>\n <button\n *ngIf=\"c3Expansion()\"\n mat-icon-button\n (click)=\"c3Expansion()?.toggleExpand()\"\n [matTooltip]=\"c3Expansion()?.isExpanded() ? 'Réduire' : 'Développer'\"\n >\n <mat-icon>{{\n c3Expansion()?.isExpanded() ? \"expand_less\" : \"expand_more\"\n }}</mat-icon>\n </button>\n</ng-content>\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\nimport autoAnimate, {\n AutoAnimateOptions,\n AutoAnimationPlugin,\n} from '@formkit/auto-animate';\n\n@Directive({\n selector: '[c3AutoAnimate]',\n standalone: true,\n})\nexport class C3AutoAnimateDirective implements AfterViewInit {\n @Input() options?: Partial<AutoAnimateOptions> | AutoAnimationPlugin;\n constructor(private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n autoAnimate(this.el.nativeElement, this.options);\n }\n}\n","import {\n Component,\n ElementRef,\n HostBinding,\n input,\n model,\n} from '@angular/core';\nimport { C3AutoAnimateDirective } from '../../../c3-auto-animate/C3AutoAnimate.directive';\n\n@Component({\n selector: 'c3-expansion',\n templateUrl: './c3-expansion.component.html',\n hostDirectives: [\n {\n directive: C3AutoAnimateDirective,\n inputs: ['options'],\n },\n ],\n})\nexport class C3ExpansionComponent {\n public headerClass = input<string>('c3-expansion-header');\n public isExpanded = model<boolean>(false);\n\n @HostBinding('class') get hostClass() {\n return 'c3-expansion';\n }\n\n constructor(public _elementRef: ElementRef) {}\n\n toggleExpand() {\n this.isExpanded.set(!this.isExpanded());\n }\n}\n","<div [class]=\"headerClass()\">\n <ng-content select=\"c3-expansion-header\">\n <c3-expansion-header [c3Expansion]=\"this\" />\n </ng-content>\n</div>\n\n<div *ngIf=\"isExpanded()\">\n <ng-content></ng-content>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { C3ExpansionHeaderComponent } from './components/c3-expansion-header/c3-expansion-header.component';\nimport { C3ExpansionComponent } from './components/c3-expansion/c3-expansion.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { C3AutoAnimateDirective } from '../c3-auto-animate/C3AutoAnimate.directive';\n\n@NgModule({\n declarations: [C3ExpansionComponent, C3ExpansionHeaderComponent],\n imports: [\n CommonModule,\n C3AutoAnimateDirective,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatButtonModule,\n MatToolbarModule,\n ],\n exports: [C3ExpansionComponent, C3ExpansionHeaderComponent],\n})\nexport class C3ExpansionModule {}\n","/*\n * Public API Surface of c3-components\n */\n\nexport * from './lib/c3-file-viewer/models/http.client';\n\n/**\n * Dropdown\n */\nexport * from './lib/c3-dropdown/components/c3-dropdown.component';\nexport * from './lib/c3-dropdown/directives/c3-dropdown.trigger';\nexport * from './lib/c3-dropdown/c3-dropdown.module';\n\n/**\n * Dialog\n */\nexport * from './lib/c3-dialog/components/c3-dialog-confirm.component';\nexport * from './lib/c3-dialog/components/c3-dialog-prompt.component';\nexport * from './lib/c3-dialog/components/c3-dialog-embed-child.component';\nexport * from './lib/c3-dialog/services/c3-dialog.service';\nexport * from './lib/c3-dialog/c3-dialog.module';\n\n/**\n * File Viewer\n */\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer/c3-file-viewer.component';\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog.component';\nexport * from './lib/c3-file-viewer/components/public/c3-file-viewer-dialog/c3-file-viewer-dialog';\nexport * from './lib/c3-file-viewer/directives/full-screen.directive';\nexport * from './lib/c3-file-viewer/models/custom-file-event.model';\nexport * from './lib/c3-file-viewer/models/file-viewer-config.model';\nexport * from './lib/c3-file-viewer/models/file-viewer';\nexport * from './lib/c3-file-viewer/models/file-metadata';\nexport * from './lib/c3-file-viewer/c3-file-viewer.module';\n\n/**\n * Safe Url\n */\nexport * from './lib/c3-safe-url/pipes/c3-safe-url.pipe';\n\n/**\n * Expansion\n */\nexport * from './lib/c3-expansion/c3-expansion.module';\nexport * from './lib/c3-expansion/components/c3-expansion/c3-expansion.component';\nexport * from './lib/c3-expansion/components/c3-expansion-header/c3-expansion-header.component';\n\n/**\n * Auto Animate\n */\nexport * from './lib/c3-auto-animate/C3AutoAnimate.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i2.C3SafeUrlPipe","i3.FullScreenDirective","i4.C3FileViewerActionsComponent","i5.C3FileViewerImageComponent","i6.C3FileViewerPdfComponent","i7.C3FileViewerVideoComponent","i1.C3FileViewerComponent","i3.C3ExpansionHeaderComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "c3-components",
3
- "version": "0.0.22",
3
+ "version": "0.0.25",
4
4
  "description": "C3 Components Library",
5
5
  "author": "Kroenen62",
6
6
  "license": "MIT",