@libs-ui/components-inputs-quill 0.2.319-0 → 0.2.321-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -350,4 +350,4 @@ export const linkDefault = () => {
350
350
  },
351
351
  };
352
352
  };
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpbGwuZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9xdWlsbC9zcmMvdXRpbHMvcXVpbGwuZGVmaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFbEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtJQUNoQyxPQUFPO1FBQ0wsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSw4RkFBOEYsRUFBRTtRQUNqSCxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLCtGQUErRixFQUFFO1FBQ3ZILEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsZ0dBQWdHLEVBQUU7UUFDekgsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxpR0FBaUcsRUFBRTtLQUM1SCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtJQUMzQixPQUFPO1FBQ0wsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7UUFDaEMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDaEMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7S0FDekMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxHQUFHLEVBQUU7SUFDN0IsT0FBTztRQUNMLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxL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ICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaXN0Q29uZmlnSXRlbSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtbGlzdCc7XG5pbXBvcnQgeyByZXR1cm5MaXN0T2JqZWN0IH0gZnJvbSAnQGxpYnMtdWkvc2VydmljZXMtaHR0cC1yZXF1ZXN0JztcbmltcG9ydCB7IElRdWlsbExpbmssIElRdWlsbFRvb2xiYXJDb25maWcsIElRdWlsbFVwbG9hZEltYWdlQ29uZmlnLCBUWVBFX01PREVfQkFSX0NPTkZJR19PUFRJT04gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3F1aWxsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjb252ZXJ0RmlsZVRvQmFzZTY0X09iamVjdFVybCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGxpc3REYXRhQWxpZ24gPSAoKSA9PiB7XG4gIHJldHVybiBbXG4gICAgeyBrZXk6ICcnLCBpY29uOiAnbGlicy11aS1pY29uLWFsaWduLWxlZnQgdGV4dC1bIzZhNzM4M10gdGV4dC1bMTZweF0gaG92ZXI6dGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0xKV0nIH0sXG4gICAgeyBrZXk6ICdyaWdodCcsIGljb246ICdsaWJzLXVpLWljb24tYWxpZ24tcmlnaHQgdGV4dC1bIzZhNzM4M10gdGV4dC1bMTZweF0gaG92ZXI6dGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0xKV0nIH0sXG4gICAgeyBrZXk6ICdjZW50ZXInLCBpY29uOiAnbGlicy11aS1pY29uLWFsaWduLWNlbnRlciB0ZXh0LVsjNmE3MzgzXSB0ZXh0LVsxNnB4XSBob3Zlcjp0ZXh0LVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTEpXScgfSxcbiAgICB7IGtleTogJ2p1c3RpZnknLCBpY29uOiAnbGlicy11aS1pY29uLWFsaWduLWp1c3RpZnkgdGV4dC1bIzZhNzM4M10gdGV4dC1bMTZweF0gaG92ZXI6dGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0xKV0nIH0sXG4gIF07XG59O1xuXG5leHBvcnQgY29uc3QgbGlzdEZvbnQgPSAoKSA9PiB7XG4gIHJldHVybiBbXG4gICAgeyBrZXk6ICcnLCBsYWJlbDogJ1NhbnMgU2VyaWYnIH0sXG4gICAgeyBrZXk6ICdzZXJpZicsIGxhYmVsOiAnU2VyaWYnIH0sXG4gICAgeyBrZXk6ICdtb25vc3BhY2UnLCBsYWJlbDogJ01vbm9zcGFjZScgfSxcbiAgXTtcbn07XG5cbmV4cG9ydCBjb25zdCBsaXN0SGVhZGVyID0gKCkgPT4ge1xuICByZXR1cm4gW1xuICAgIHsga2V5OiAnJywgbGFiZWw6ICdOb3JtYWwnIH0sXG4gICAgeyBrZXk6ICcxJywgbGFiZWw6ICdIZWFkaW5nIDEnIH0sXG4gICAgeyBrZXk6ICcyJywgbGFiZWw6ICdIZWFkaW5nIDInIH0sXG4gICAgeyBrZXk6ICczJywgbGFiZWw6ICdIZWFkaW5nIDMnIH0sXG4gICAgeyBrZXk6ICc0JywgbGFiZWw6ICdIZWFkaW5nIDQnIH0sXG4gICAgeyBrZXk6ICc1JywgbGFiZWw6ICdIZWFkaW5nIDUnIH0sXG4gICAgeyBrZXk6ICc2JywgbGFiZWw6ICdIZWFkaW5nIDYnIH0sXG4gIF07XG59O1xuXG5leHBvcnQgY29uc3QgbGlzdENvbmZpZ0FsaWduID0gKCk6IElMaXN0Q29uZmlnSXRlbSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGF1dG9TZWxlY3RGaXJzdEl0ZW06IHRydWUsXG4gICAgaHR0cFJlcXVlc3REYXRhOiBzaWduYWwoe1xuICAgICAgb2JqZWN0SW5zdGFuY2U6IHJldHVybkxpc3RPYmplY3QobGlzdERhdGFBbGlnbigpKSxcbiAgICAgIGZ1bmN0aW9uTmFtZTogJ2xpc3QnLFxuICAgICAgYXJndW1lbnRzVmFsdWU6IFtdLFxuICAgIH0pLFxuICAgIGNvbmZpZ1RlbXBsYXRlVGV4dDogc2lnbmFsKHtcbiAgICAgIGZpZWxkS2V5OiAna2V5JyxcbiAgICAgIGdldENsYXNzSXRlbTogKCkgPT4gJyFweC1bOHB4XSAhcHktWzRweF0nLFxuICAgICAgZ2V0VmFsdWU6IChpdGVtKSA9PiBgPGkgY2xhc3M9J2ZsZXggJHtpdGVtLmljb259Jz48L2k+YCxcbiAgICAgIGlnbm9yZUljb25TZWxlY3RlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBsaXN0Q29uZmlnRm9udCA9ICgpOiBJTGlzdENvbmZpZ0l0ZW0gPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBhdXRvU2VsZWN0Rmlyc3RJdGVtOiB0cnVlLFxuICAgIGh0dHBSZXF1ZXN0RGF0YTogc2lnbmFsKHtcbiAgICAgIG9iamVjdEluc3RhbmNlOiByZXR1cm5MaXN0T2JqZWN0KGxpc3RGb250KCkpLFxuICAgICAgZnVuY3Rpb25OYW1lOiAnbGlzdCcsXG4gICAgICBhcmd1bWVudHNWYWx1ZTogW10sXG4gICAgfSksXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdrZXknLFxuICAgICAgZ2V0VmFsdWU6IChpdGVtKSA9PiBpdGVtLmxhYmVsLFxuICAgICAgaWdub3JlSWNvblNlbGVjdGVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGxpc3RDb25maWdIZWFkZXIgPSAoKTogSUxpc3RDb25maWdJdGVtID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgYXV0b1NlbGVjdEZpcnN0SXRlbTogdHJ1ZSxcbiAgICBodHRwUmVxdWVzdERhdGE6IHNpZ25hbCh7XG4gICAgICBvYmplY3RJbnN0YW5jZTogcmV0dXJuTGlzdE9iamVjdChsaXN0SGVhZGVyKCkpLFxuICAgICAgZnVuY3Rpb25OYW1lOiAnbGlzdCcsXG4gICAgICBhcmd1bWVudHNWYWx1ZTogW10sXG4gICAgfSksXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdrZXknLFxuICAgICAgZ2V0VmFsdWU6IChpdGVtKSA9PiBpdGVtLmxhYmVsLFxuICAgICAgaWdub3JlSWNvblNlbGVjdGVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvb2xCYXJPcHRpb25zID0gKG1vZGU6IFRZUEVfTU9ERV9CQVJfQ09ORklHX09QVElPTiwgaGFzSWNvbkltYWdlOiBib29sZWFuLCBoYXNJY29uUGVyc29uYWxpemU6IGJvb2xlYW4pOiBBcnJheTxJUXVpbGxUb29sYmFyQ29uZmlnPiA9PiB7XG4gIHJldHVybiAoXG4gICAgW1xuICAgICAge1xuICAgICAgICB0eXBlOiAndW5kbycsXG4gICAgICAgIGNsYXNzSW5jbHVkZTogJ21yLVs4cHhdJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0JywgJ2Jhc2ljJ10sXG4gICAgICAgIHdpZHRoOiAyNCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdyZWRvJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0JywgJ2Jhc2ljJ10sXG4gICAgICAgIHdpZHRoOiAzMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdsaW5lJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0JywgJ2Jhc2ljJ10sXG4gICAgICAgIHdpZHRoOiAxLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGNsYXNzSW5jbHVkZTogJ21sLVs4cHhdJyxcbiAgICAgICAgbW9kZTogW10sXG4gICAgICAgIHdpZHRoOiAxNDYsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnZm9udEZhbWlseScsXG4gICAgICAgIGNsYXNzSW5jbHVkZTogJ21sLVs4cHhdJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0J10sXG4gICAgICAgIHdpZHRoOiAxMzYsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnZm9udFNpemUnLFxuICAgICAgICBjbGFzc0luY2x1ZGU6ICdtbC1bOHB4XSBtci1bOHB4XScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogODIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdjb2xvcicsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnYmFja2dyb3VuZCcsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdib2xkJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0JywgJ2Jhc2ljJ10sXG4gICAgICAgIHdpZHRoOiAzMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnLCAnYmFzaWMnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3VuZGVybGluZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnc3RyaWtlVGhyb3VnaCcsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdhZGp1c3QnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDUyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2luZGVudEluY3JlYXNlJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0J10sXG4gICAgICAgIHdpZHRoOiAzMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdpbmRlbnREZWNyZWFzZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbGlzdEJ1bGxldGVkJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0J10sXG4gICAgICAgIHdpZHRoOiAzMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdsaXN0TnVtYmVyZWQnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDEsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAncGVyc29uYWxpemUnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2Jsb2NrcXVvdGUnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnLCAnYmFzaWMnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3VuTGluaycsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2Vtb2ppJyxcbiAgICAgICAgY2xhc3NJbmNsdWRlOiAnbWwtWzhweF0nLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDI0LFxuICAgICAgfSxcbiAgICBdIGFzIEFycmF5PElRdWlsbFRvb2xiYXJDb25maWc+XG4gICkuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgaWYgKCFpdGVtLm1vZGU/LmluY2x1ZGVzKG1vZGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpdGVtLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgIHJldHVybiBoYXNJY29uSW1hZ2U7XG4gICAgfVxuICAgIGlmIChpdGVtLnR5cGUgPT09ICdwZXJzb25hbGl6ZScpIHtcbiAgICAgIHJldHVybiBoYXNJY29uUGVyc29uYWxpemU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufTtcbmV4cG9ydCBjb25zdCBpY29uTGlzdCA9ICgpOiBBcnJheTx7IGtleTogc3RyaW5nOyBpY29uOiBzdHJpbmcgfT4gPT4ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGtleTogJ2JvbGQnLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1lZGl0b3ItYm9sZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdpdGFsaWMnLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1lZGl0b3ItaXRhbGljJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ3VuZGVybGluZScsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLWVkaXRvci11bmRlcmxpbmVkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2ltYWdlJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24taW1hZ2Utc29saWQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnbGluaycsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLWxpbmsnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAndW5kbycsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLXVuZG8nLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAncmVkbycsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLXVuZG8gc2NhbGUteC1bLTFdJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ3N0cmlrZScsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLWVkaXRvci1zdHJpa2UtdGhyb3VnaCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdibG9ja3F1b3RlJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24tcXVvdGUnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnb3JkZXJlZCcsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLWxpc3QtbnVtYmVyZWQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnYnVsbGV0JyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24tbGlzdC1idWxsZXRlZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdiYWNrZ3JvdW5kJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24tZWRpdG9yLWNvbG9yLWJhY2tncm91bmQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnY29sb3InLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1lZGl0b3ItY29sb3ItdGV4dCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdpbmRlbnQuLTEnLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1pbmRlbnQtZGVjcmVhc2UnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnaW5kZW50LisxJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24taW5kZW50LWluY3JlYXNlJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2FsaWduLicsXG4gICAgICBpY29uOiAnYWxpZ24tcXVpbGwgbGlicy11aS1pY29uLWFsaWduLWxlZnQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnYWxpZ24uY2VudGVyJyxcbiAgICAgIGljb246ICdhbGlnbi1xdWlsbCBsaWJzLXVpLWljb24tYWxpZ24tY2VudGVyJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2FsaWduLnJpZ2h0JyxcbiAgICAgIGljb246ICdhbGlnbi1xdWlsbCBsaWJzLXVpLWljb24tYWxpZ24tcmlnaHQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnYWxpZ24uanVzdGlmeScsXG4gICAgICBpY29uOiAnYWxpZ24tcXVpbGwgbGlicy11aS1pY29uLWFsaWduLWp1c3RpZnknLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAndW5MaW5rJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24tbGluay1icm9rZW4nLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZW1vamknLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1mYWNlLXNtaWxlJyxcbiAgICB9LFxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwbG9hZEltYWdlQ29uZmlnRGVmYXVsdCA9ICgpOiBJUXVpbGxVcGxvYWRJbWFnZUNvbmZpZyA9PiB7XG4gIHJldHVybiB7XG4gICAgbW9kZUN1c3RvbTogZmFsc2UsXG4gICAgekluZGV4OiAxMjAyLFxuICAgIHNob3dJY29uOiB0cnVlLFxuICAgIG1heEltYWdlU2l6ZTogNSAqIDEwMjQgKiAxMDI0LFxuICAgIG9ubHlBY2NlcHRJbWFnZUh0dHBzTGluazogZmFsc2UsXG4gICAgZnVuY3Rpb25VcGxvYWRJbWFnZTogYXN5bmMgKGZpbGVzOiBBcnJheTxGaWxlPikgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGRhdGEucHVzaChhd2FpdCBjb252ZXJ0RmlsZVRvQmFzZTY0X09iamVjdFVybChmaWxlKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGxpbmtEZWZhdWx0ID0gKCk6IElRdWlsbExpbmsgPT4ge1xuICByZXR1cm4ge1xuICAgIHRpdGxlOiAnJyxcbiAgICB1cmw6ICcnLFxuICAgIHJhbmdlOiB7XG4gICAgICBpbmRleDogMCxcbiAgICAgIGxlbmd0aDogMCxcbiAgICB9LFxuICB9O1xufTtcbiJdfQ==
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpbGwuZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9xdWlsbC9zcmMvdXRpbHMvcXVpbGwuZGVmaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFzQixnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUU7SUFDaEMsT0FBTztRQUNMLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsOEZBQThGLEVBQUU7UUFDakgsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSwrRkFBK0YsRUFBRTtRQUN2SCxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGdHQUFnRyxFQUFFO1FBQ3pILEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsaUdBQWlHLEVBQUU7S0FDNUgsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUU7SUFDM0IsT0FBTztRQUNMLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO1FBQ2hDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1FBQ2hDLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0tBQ3pDLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsR0FBRyxFQUFFO0lBQzdCLE9BQU87UUFDTCxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUs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ZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTGlzdENvbmZpZ0l0ZW0gfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxpc3QnO1xuaW1wb3J0IHsgSUh0dHBSZXF1ZXN0Q29uZmlnLCByZXR1cm5MaXN0T2JqZWN0IH0gZnJvbSAnQGxpYnMtdWkvc2VydmljZXMtaHR0cC1yZXF1ZXN0JztcbmltcG9ydCB7IElRdWlsbExpbmssIElRdWlsbFRvb2xiYXJDb25maWcsIElRdWlsbFVwbG9hZEltYWdlQ29uZmlnLCBUWVBFX01PREVfQkFSX0NPTkZJR19PUFRJT04gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3F1aWxsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBjb252ZXJ0RmlsZVRvQmFzZTY0X09iamVjdFVybCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IGxpc3REYXRhQWxpZ24gPSAoKSA9PiB7XG4gIHJldHVybiBbXG4gICAgeyBrZXk6ICcnLCBpY29uOiAnbGlicy11aS1pY29uLWFsaWduLWxlZnQgdGV4dC1bIzZhNzM4M10gdGV4dC1bMTZweF0gaG92ZXI6dGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0xKV0nIH0sXG4gICAgeyBrZXk6ICdyaWdodCcsIGljb246ICdsaWJzLXVpLWljb24tYWxpZ24tcmlnaHQgdGV4dC1bIzZhNzM4M10gdGV4dC1bMTZweF0gaG92ZXI6dGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0xKV0nIH0sXG4gICAgeyBrZXk6ICdjZW50ZXInLCBpY29uOiAnbGlicy11aS1pY29uLWFsaWduLWNlbnRlciB0ZXh0LVsjNmE3MzgzXSB0ZXh0LVsxNnB4XSBob3Zlcjp0ZXh0LVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTEpXScgfSxcbiAgICB7IGtleTogJ2p1c3RpZnknLCBpY29uOiAnbGlicy11aS1pY29uLWFsaWduLWp1c3RpZnkgdGV4dC1bIzZhNzM4M10gdGV4dC1bMTZweF0gaG92ZXI6dGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0xKV0nIH0sXG4gIF07XG59O1xuXG5leHBvcnQgY29uc3QgbGlzdEZvbnQgPSAoKSA9PiB7XG4gIHJldHVybiBbXG4gICAgeyBrZXk6ICcnLCBsYWJlbDogJ1NhbnMgU2VyaWYnIH0sXG4gICAgeyBrZXk6ICdzZXJpZicsIGxhYmVsOiAnU2VyaWYnIH0sXG4gICAgeyBrZXk6ICdtb25vc3BhY2UnLCBsYWJlbDogJ01vbm9zcGFjZScgfSxcbiAgXTtcbn07XG5cbmV4cG9ydCBjb25zdCBsaXN0SGVhZGVyID0gKCkgPT4ge1xuICByZXR1cm4gW1xuICAgIHsga2V5OiAnJywgbGFiZWw6ICdOb3JtYWwnIH0sXG4gICAgeyBrZXk6ICcxJywgbGFiZWw6ICdIZWFkaW5nIDEnIH0sXG4gICAgeyBrZXk6ICcyJywgbGFiZWw6ICdIZWFkaW5nIDInIH0sXG4gICAgeyBrZXk6ICczJywgbGFiZWw6ICdIZWFkaW5nIDMnIH0sXG4gICAgeyBrZXk6ICc0JywgbGFiZWw6ICdIZWFkaW5nIDQnIH0sXG4gICAgeyBrZXk6ICc1JywgbGFiZWw6ICdIZWFkaW5nIDUnIH0sXG4gICAgeyBrZXk6ICc2JywgbGFiZWw6ICdIZWFkaW5nIDYnIH0sXG4gIF07XG59O1xuXG5leHBvcnQgY29uc3QgbGlzdENvbmZpZ0FsaWduID0gKCk6IElMaXN0Q29uZmlnSXRlbSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGF1dG9TZWxlY3RGaXJzdEl0ZW06IHRydWUsXG4gICAgaHR0cFJlcXVlc3REYXRhOiBzaWduYWw8SUh0dHBSZXF1ZXN0Q29uZmlnPih7XG4gICAgICBvYmplY3RJbnN0YW5jZTogcmV0dXJuTGlzdE9iamVjdChsaXN0RGF0YUFsaWduKCkpLFxuICAgICAgZnVuY3Rpb25OYW1lOiAnbGlzdCcsXG4gICAgICBhcmd1bWVudHNWYWx1ZTogW10sXG4gICAgfSksXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdrZXknLFxuICAgICAgZ2V0Q2xhc3NJdGVtOiAoKSA9PiAnIXB4LVs4cHhdICFweS1bNHB4XScsXG4gICAgICBnZXRWYWx1ZTogKGl0ZW0pID0+IGA8aSBjbGFzcz0nZmxleCAke2l0ZW0uaWNvbn0nPjwvaT5gLFxuICAgICAgaWdub3JlSWNvblNlbGVjdGVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGxpc3RDb25maWdGb250ID0gKCk6IElMaXN0Q29uZmlnSXRlbSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGF1dG9TZWxlY3RGaXJzdEl0ZW06IHRydWUsXG4gICAgaHR0cFJlcXVlc3REYXRhOiBzaWduYWw8SUh0dHBSZXF1ZXN0Q29uZmlnPih7XG4gICAgICBvYmplY3RJbnN0YW5jZTogcmV0dXJuTGlzdE9iamVjdChsaXN0Rm9udCgpKSxcbiAgICAgIGZ1bmN0aW9uTmFtZTogJ2xpc3QnLFxuICAgICAgYXJndW1lbnRzVmFsdWU6IFtdLFxuICAgIH0pLFxuICAgIGNvbmZpZ1RlbXBsYXRlVGV4dDogc2lnbmFsKHtcbiAgICAgIGZpZWxkS2V5OiAna2V5JyxcbiAgICAgIGdldFZhbHVlOiAoaXRlbSkgPT4gaXRlbS5sYWJlbCxcbiAgICAgIGlnbm9yZUljb25TZWxlY3RlZDogdHJ1ZSxcbiAgICB9KSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBsaXN0Q29uZmlnSGVhZGVyID0gKCk6IElMaXN0Q29uZmlnSXRlbSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGF1dG9TZWxlY3RGaXJzdEl0ZW06IHRydWUsXG4gICAgaHR0cFJlcXVlc3REYXRhOiBzaWduYWw8SUh0dHBSZXF1ZXN0Q29uZmlnPih7XG4gICAgICBvYmplY3RJbnN0YW5jZTogcmV0dXJuTGlzdE9iamVjdChsaXN0SGVhZGVyKCkpLFxuICAgICAgZnVuY3Rpb25OYW1lOiAnbGlzdCcsXG4gICAgICBhcmd1bWVudHNWYWx1ZTogW10sXG4gICAgfSksXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdrZXknLFxuICAgICAgZ2V0VmFsdWU6IChpdGVtKSA9PiBpdGVtLmxhYmVsLFxuICAgICAgaWdub3JlSWNvblNlbGVjdGVkOiB0cnVlLFxuICAgIH0pLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHRvb2xCYXJPcHRpb25zID0gKG1vZGU6IFRZUEVfTU9ERV9CQVJfQ09ORklHX09QVElPTiwgaGFzSWNvbkltYWdlOiBib29sZWFuLCBoYXNJY29uUGVyc29uYWxpemU6IGJvb2xlYW4pOiBBcnJheTxJUXVpbGxUb29sYmFyQ29uZmlnPiA9PiB7XG4gIHJldHVybiAoXG4gICAgW1xuICAgICAge1xuICAgICAgICB0eXBlOiAndW5kbycsXG4gICAgICAgIGNsYXNzSW5jbHVkZTogJ21yLVs4cHhdJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0JywgJ2Jhc2ljJ10sXG4gICAgICAgIHdpZHRoOiAyNCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdyZWRvJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0JywgJ2Jhc2ljJ10sXG4gICAgICAgIHdpZHRoOiAzMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdsaW5lJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0JywgJ2Jhc2ljJ10sXG4gICAgICAgIHdpZHRoOiAxLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2hlYWRlcicsXG4gICAgICAgIGNsYXNzSW5jbHVkZTogJ21sLVs4cHhdJyxcbiAgICAgICAgbW9kZTogW10sXG4gICAgICAgIHdpZHRoOiAxNDYsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnZm9udEZhbWlseScsXG4gICAgICAgIGNsYXNzSW5jbHVkZTogJ21sLVs4cHhdJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0J10sXG4gICAgICAgIHdpZHRoOiAxMzYsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnZm9udFNpemUnLFxuICAgICAgICBjbGFzc0luY2x1ZGU6ICdtbC1bOHB4XSBtci1bOHB4XScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogODIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdjb2xvcicsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnYmFja2dyb3VuZCcsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdib2xkJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0JywgJ2Jhc2ljJ10sXG4gICAgICAgIHdpZHRoOiAzMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdpdGFsaWMnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnLCAnYmFzaWMnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3VuZGVybGluZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnc3RyaWtlVGhyb3VnaCcsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdhZGp1c3QnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDUyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2luZGVudEluY3JlYXNlJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0J10sXG4gICAgICAgIHdpZHRoOiAzMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdpbmRlbnREZWNyZWFzZScsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnbGlzdEJ1bGxldGVkJyxcbiAgICAgICAgbW9kZTogWydkZWZhdWx0J10sXG4gICAgICAgIHdpZHRoOiAzMixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdsaXN0TnVtYmVyZWQnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDEsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAncGVyc29uYWxpemUnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2Jsb2NrcXVvdGUnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnLCAnYmFzaWMnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3VuTGluaycsXG4gICAgICAgIG1vZGU6IFsnZGVmYXVsdCcsICdiYXNpYyddLFxuICAgICAgICB3aWR0aDogMzIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDMyLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2Vtb2ppJyxcbiAgICAgICAgY2xhc3NJbmNsdWRlOiAnbWwtWzhweF0nLFxuICAgICAgICBtb2RlOiBbJ2RlZmF1bHQnXSxcbiAgICAgICAgd2lkdGg6IDI0LFxuICAgICAgfSxcbiAgICBdIGFzIEFycmF5PElRdWlsbFRvb2xiYXJDb25maWc+XG4gICkuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgaWYgKCFpdGVtLm1vZGU/LmluY2x1ZGVzKG1vZGUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmIChpdGVtLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgIHJldHVybiBoYXNJY29uSW1hZ2U7XG4gICAgfVxuICAgIGlmIChpdGVtLnR5cGUgPT09ICdwZXJzb25hbGl6ZScpIHtcbiAgICAgIHJldHVybiBoYXNJY29uUGVyc29uYWxpemU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xufTtcbmV4cG9ydCBjb25zdCBpY29uTGlzdCA9ICgpOiBBcnJheTx7IGtleTogc3RyaW5nOyBpY29uOiBzdHJpbmcgfT4gPT4ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIGtleTogJ2JvbGQnLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1lZGl0b3ItYm9sZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdpdGFsaWMnLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1lZGl0b3ItaXRhbGljJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ3VuZGVybGluZScsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLWVkaXRvci11bmRlcmxpbmVkJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2ltYWdlJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24taW1hZ2Utc29saWQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnbGluaycsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLWxpbmsnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAndW5kbycsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLXVuZG8nLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAncmVkbycsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLXVuZG8gc2NhbGUteC1bLTFdJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ3N0cmlrZScsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLWVkaXRvci1zdHJpa2UtdGhyb3VnaCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdibG9ja3F1b3RlJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24tcXVvdGUnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnb3JkZXJlZCcsXG4gICAgICBpY29uOiAnbGlicy11aS1pY29uLWxpc3QtbnVtYmVyZWQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnYnVsbGV0JyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24tbGlzdC1idWxsZXRlZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdiYWNrZ3JvdW5kJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24tZWRpdG9yLWNvbG9yLWJhY2tncm91bmQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnY29sb3InLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1lZGl0b3ItY29sb3ItdGV4dCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdpbmRlbnQuLTEnLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1pbmRlbnQtZGVjcmVhc2UnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnaW5kZW50LisxJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24taW5kZW50LWluY3JlYXNlJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2FsaWduLicsXG4gICAgICBpY29uOiAnYWxpZ24tcXVpbGwgbGlicy11aS1pY29uLWFsaWduLWxlZnQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnYWxpZ24uY2VudGVyJyxcbiAgICAgIGljb246ICdhbGlnbi1xdWlsbCBsaWJzLXVpLWljb24tYWxpZ24tY2VudGVyJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2FsaWduLnJpZ2h0JyxcbiAgICAgIGljb246ICdhbGlnbi1xdWlsbCBsaWJzLXVpLWljb24tYWxpZ24tcmlnaHQnLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnYWxpZ24uanVzdGlmeScsXG4gICAgICBpY29uOiAnYWxpZ24tcXVpbGwgbGlicy11aS1pY29uLWFsaWduLWp1c3RpZnknLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAndW5MaW5rJyxcbiAgICAgIGljb246ICdsaWJzLXVpLWljb24tbGluay1icm9rZW4nLFxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZW1vamknLFxuICAgICAgaWNvbjogJ2xpYnMtdWktaWNvbi1mYWNlLXNtaWxlJyxcbiAgICB9LFxuICBdO1xufTtcblxuZXhwb3J0IGNvbnN0IHVwbG9hZEltYWdlQ29uZmlnRGVmYXVsdCA9ICgpOiBJUXVpbGxVcGxvYWRJbWFnZUNvbmZpZyA9PiB7XG4gIHJldHVybiB7XG4gICAgbW9kZUN1c3RvbTogZmFsc2UsXG4gICAgekluZGV4OiAxMjAyLFxuICAgIHNob3dJY29uOiB0cnVlLFxuICAgIG1heEltYWdlU2l6ZTogNSAqIDEwMjQgKiAxMDI0LFxuICAgIG9ubHlBY2NlcHRJbWFnZUh0dHBzTGluazogZmFsc2UsXG4gICAgZnVuY3Rpb25VcGxvYWRJbWFnZTogYXN5bmMgKGZpbGVzOiBBcnJheTxGaWxlPikgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IFtdO1xuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGRhdGEucHVzaChhd2FpdCBjb252ZXJ0RmlsZVRvQmFzZTY0X09iamVjdFVybChmaWxlKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGxpbmtEZWZhdWx0ID0gKCk6IElRdWlsbExpbmsgPT4ge1xuICByZXR1cm4ge1xuICAgIHRpdGxlOiAnJyxcbiAgICB1cmw6ICcnLFxuICAgIHJhbmdlOiB7XG4gICAgICBpbmRleDogMCxcbiAgICAgIGxlbmd0aDogMCxcbiAgICB9LFxuICB9O1xufTtcbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-inputs-quill.mjs","sources":["../../../../../../libs-ui/components/inputs/quill/src/blots-custom/div.component.ts","../../../../../../libs-ui/components/inputs/quill/src/blots-custom/image.component.ts","../../../../../../libs-ui/components/inputs/quill/src/blots-custom/mention.component.ts","../../../../../../libs-ui/components/inputs/quill/src/indent-attributor/indent-attributor.component.ts","../../../../../../libs-ui/components/inputs/quill/src/link/link.component.ts","../../../../../../libs-ui/components/inputs/quill/src/link/link.component.html","../../../../../../libs-ui/components/inputs/quill/src/upload-image/upload-image.component.ts","../../../../../../libs-ui/components/inputs/quill/src/upload-image/upload-image.component.html","../../../../../../libs-ui/components/inputs/quill/src/utils/quill.define.ts","../../../../../../libs-ui/components/inputs/quill/src/quill.component.ts","../../../../../../libs-ui/components/inputs/quill/src/quill.component.html","../../../../../../libs-ui/components/inputs/quill/src/libs-ui-components-inputs-quill.ts"],"sourcesContent":["import Quill from 'quill';\n\nconst Block = Quill.import('blots/block');\n\nexport class QuillDivBlot extends Block {\n static tagName = 'div';\n}\n","import Quill from 'quill';\n\nconst ImageFormat = Quill.import('formats/image');\n\nexport class CustomImageBlot extends ImageFormat {\n static create(value: string) {\n const node = super.create(value);\n node.classList.add('libs-ui-quill-format-image');\n return node;\n }\n\n formats() {\n return {}; // Tránh Quill tự động thêm thẻ `<span>`\n }\n}\n","import Quill from 'quill';\n\nconst Embed = Quill.import('blots/embed');\n\nexport class QuillMentionBlot extends Embed {\n static blotName = 'mention';\n static tagName = 'span';\n static className = 'libs-ui-quill-mention';\n static create(data: { id: string; feId: string; value: string }) {\n const node = super.create();\n node.innerText += data.value;\n node.setAttribute('id', data.id);\n node.setAttribute('feId', data.feId);\n node.setAttribute('value', data.value);\n return node;\n }\n\n static value(domNode: HTMLElement) {\n return {\n id: domNode.getAttribute('id'),\n feId: domNode.getAttribute('feId'),\n value: domNode.getAttribute('value'),\n };\n }\n\n attach() {\n super.attach();\n if (!this.mounted) {\n this.mounted = true;\n this.clickHandler = this.getClickHandler;\n this.domNode.addEventListener('click', this.clickHandler, false);\n }\n }\n\n getClickHandler(event: Event) {\n event.stopPropagation();\n }\n}\n","import Quill from 'quill';\n\nconst parchment = Quill.import('parchment');\nconst pixelLevels = [1, 2, 3, 4, 5, 6, 7, 8];\nconst tabMultiplier = 3;\n\nclass IndentAttributor extends (parchment.Attributor.Style as {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (formatName: string, styleProperty: string, attributorOptions: unknown): any;\n}) {\n constructor(formatName: string, styleProperty: string, attributorOptions: unknown) {\n super(formatName, styleProperty, attributorOptions);\n }\n\n public add(node: HTMLElement, value: string): boolean {\n return super.add(node, `${+value * tabMultiplier}em`);\n }\n\n public value(node: HTMLElement): number | undefined {\n return parseFloat(super.value(node)) / tabMultiplier || undefined; // Don't return NaN\n }\n}\n\nexport const indentStyle = new IndentAttributor('indent', 'margin-left', {\n scope: parchment.Scope.BLOCK,\n whitelist: pixelLevels.map((value) => `${value * tabMultiplier}em`),\n});\n","import { ChangeDetectionStrategy, Component, input, OnInit, output, signal } from '@angular/core';\nimport { IInputValidFunctionControlEvent, LibsUiComponentsInputsValidComponent } from '@libs-ui/components-inputs-valid';\nimport { LibsUiComponentsModalComponent, TYPE_MODAL_EVENT } from '@libs-ui/components-modal';\nimport { patternUrl } from '@libs-ui/utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-quill-link',\n templateUrl: './link.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiComponentsModalComponent, LibsUiComponentsInputsValidComponent],\n})\nexport class LibsUiComponentsInputsQuillLinkComponent implements OnInit {\n protected dataLink = signal<{ title: string; link: string }>({ title: '', link: '' });\n protected patternLink = signal<RegExp>(patternUrl());\n\n private inputValidFunctionControl = signal<Array<IInputValidFunctionControlEvent>>([]);\n\n readonly zIndex = input<number>(1200);\n readonly title = input<string>();\n readonly link = input<string>();\n readonly ignoreCommunicateMicroEvent = input<boolean>();\n\n readonly outClose = output<void>();\n readonly outSaveLink = output<{ title: string; link: string }>();\n\n ngOnInit() {\n const title = this.title();\n const link = this.link();\n if (title || link) {\n this.dataLink.update((item) => ({ ...item, title: title || '', link: link || '' }));\n }\n }\n\n protected async handlerFunctionsControl(event: IInputValidFunctionControlEvent) {\n this.inputValidFunctionControl.update((items) => [...items, event]);\n }\n\n private async validate() {\n let valid = true;\n for (const control of this.inputValidFunctionControl()) {\n if (!(await control.checkIsValid())) {\n valid = false;\n }\n }\n return valid;\n }\n\n protected async handlerEvent(event: TYPE_MODAL_EVENT) {\n if (event !== 'agree') {\n this.outClose.emit();\n return;\n }\n if (await this.validate()) {\n this.outSaveLink.emit(this.dataLink());\n this.outClose.emit();\n }\n }\n}\n","<libs_ui-components-modal\n [title]=\"'i18n_insert_link'\"\n [mode]=\"'center'\"\n [height]=\"'auto'\"\n [width]=\"'598px'\"\n [ignoreCommunicateMicroEvent]=\"ignoreCommunicateMicroEvent()\"\n [headerConfig]=\"{ ignoreHeaderTheme: true }\"\n [zIndex]=\"zIndex()\"\n (outEvent)=\"handlerEvent($event)\">\n <div class=\"libs-ui-modal-body-custom\">\n <libs_ui-components-inputs-valid\n [labelConfig]=\"{ labelLeft: 'i18n_content', required: true }\"\n [(item)]=\"dataLink\"\n [fieldNameBind]=\"'title'\"\n [placeholder]=\"'i18n_import_content'\"\n [validRequired]=\"{ isRequired: true }\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\" />\n <div class=\"mt-[16px]\">\n <libs_ui-components-inputs-valid\n [labelConfig]=\"{ labelLeft: 'Link', required: true }\"\n [(item)]=\"dataLink\"\n [fieldNameBind]=\"'link'\"\n [placeholder]=\"'https:/…'\"\n [validRequired]=\"{ isRequired: true }\"\n [validPattern]=\"[{ pattern: patternLink(), valuePatternShowError: false }]\"\n [keySelectedUnitLeft]=\"'1'\"\n [unitsLeft]=\"[{ id: '1', label: 'URL' }]\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\" />\n </div>\n </div>\n</libs_ui-components-modal>\n","import { ChangeDetectionStrategy, Component, input, output, signal } from '@angular/core';\nimport { IButton } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsModalComponent, TYPE_MODAL_EVENT } from '@libs-ui/components-modal';\nimport { IQuillUploadImageConfig } from '../interfaces/quill.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-quill-upload_image',\n templateUrl: './upload-image.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiComponentsModalComponent],\n})\nexport class LibsUiComponentsInputsQuillUploadImageComponent {\n protected buttonFooter = signal<Array<IButton>>([\n {\n type: 'button-third',\n label: 'i18n_cancel',\n action: async () => this.outClose.emit(),\n },\n {\n label: 'i18n_save',\n action: () => this.handlerSaveImage(),\n },\n ]);\n protected disable = signal<boolean>(false);\n readonly ignoreCommunicateMicroEvent = input<boolean>();\n\n // private mediaFile =signal<IMediaFile | undefined>(undefined);\n // private mediaUploadFunctionControl =signal<IMediaUploadBaseFunctionControlEvent | undefined>(undefined);\n\n readonly uploadImageConfig = input.required<IQuillUploadImageConfig>();\n\n readonly outClose = output<string | void>();\n\n // protected handlerFunctionsControl(event: IMediaUploadBaseFunctionControlEvent) {\n // this.mediaUploadFunctionControl.set(event);\n // }\n\n // protected handlerChangeFile(event: IChangeFile) {\n // this.mediaFile.set(event.files[0]);\n // }\n\n private async handlerSaveImage() {\n // if (!await this.mediaUploadFunctionControl()?.checkIsValid()) {\n // return;\n // }\n // if (this.mediaFile?.origin_url) {\n // this.moClose.emit(this.mediaFile.origin_url);\n // return;\n // }\n // const body: IOptionsUploadMedia = {\n // do_not_delete: true,\n // file: this.mediaFile?.file,\n // option: 'thumb',\n // size: [{ 'width': '200', 'height': '200' }]\n // };\n // this.disable = true;\n // try {\n // const params = new HttpParamsRequest({ fromObject: { pem: BUILD_PEM_OBJECT({ isCheck: 0, action: DefineConstants.PERMISSION_ACTION_VIEW, pathCheck: '/other' }) } });\n // const res = await this.mediaService.uploadImage(params, body);\n // this.moClose.emit(res.data?.url);\n // } catch (error) {\n // console.log(error);\n // this.pushMessageService.showCompTypeText('i18n_notification_manipulation_not_success', undefined, undefined, { timeRemove: 2000, type: 'error' });\n // this.moClose.emit();\n // } finally {\n // this.disable = false;\n // }\n }\n\n protected handlerEventModal(event: TYPE_MODAL_EVENT) {\n if (event === 'close') {\n this.outClose.emit();\n }\n }\n}\n","<libs_ui-components-modal\n [title]=\"'i18n_upload_image'\"\n [mode]=\"'center'\"\n [width]=\"'598px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true }\"\n [maxHeight]=\"'calc(100% - 100px)'\"\n [height]=\"'auto'\"\n [zIndex]=\"uploadImageConfig().zIndex || 1203\"\n [disable]=\"disable()\"\n [ignoreCommunicateMicroEvent]=\"ignoreCommunicateMicroEvent()\"\n [buttonsFooter]=\"buttonFooter()\"\n (outEvent)=\"handlerEventModal($event)\">\n <div class=\"libs-ui-modal-body-custom\">\n <!-- <libs-uicomponents-media-upload [zIndex]=\"zIndex+1\"\n [labelConfig]=\"labelConfig\"\n [multiple]=\"false\"\n [fileType]=\"'image'\"\n [doNotDelete]=\"true\"\n [maxImageSize]=\"maxImageSize || 1048576\"\n [limitFile]=\"10\"\n [validRequired]=\"{isRequired: true}\"\n (moChangeFile)=\"handlerChangeFile($event)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n </libs-uicomponents-media-upload> -->\n </div>\n</libs_ui-components-modal>\n","import { signal } from '@angular/core';\nimport { IListConfigItem } from '@libs-ui/components-list';\nimport { returnListObject } from '@libs-ui/services-http-request';\nimport { IQuillLink, IQuillToolbarConfig, IQuillUploadImageConfig, TYPE_MODE_BAR_CONFIG_OPTION } from '../interfaces/quill.interface';\nimport { convertFileToBase64_ObjectUrl } from '@libs-ui/utils';\n\nexport const listDataAlign = () => {\n return [\n { key: '', icon: 'libs-ui-icon-align-left text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]' },\n { key: 'right', icon: 'libs-ui-icon-align-right text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]' },\n { key: 'center', icon: 'libs-ui-icon-align-center text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]' },\n { key: 'justify', icon: 'libs-ui-icon-align-justify text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]' },\n ];\n};\n\nexport const listFont = () => {\n return [\n { key: '', label: 'Sans Serif' },\n { key: 'serif', label: 'Serif' },\n { key: 'monospace', label: 'Monospace' },\n ];\n};\n\nexport const listHeader = () => {\n return [\n { key: '', label: 'Normal' },\n { key: '1', label: 'Heading 1' },\n { key: '2', label: 'Heading 2' },\n { key: '3', label: 'Heading 3' },\n { key: '4', label: 'Heading 4' },\n { key: '5', label: 'Heading 5' },\n { key: '6', label: 'Heading 6' },\n ];\n};\n\nexport const listConfigAlign = (): IListConfigItem => {\n return {\n type: 'text',\n autoSelectFirstItem: true,\n httpRequestData: signal({\n objectInstance: returnListObject(listDataAlign()),\n functionName: 'list',\n argumentsValue: [],\n }),\n configTemplateText: signal({\n fieldKey: 'key',\n getClassItem: () => '!px-[8px] !py-[4px]',\n getValue: (item) => `<i class='flex ${item.icon}'></i>`,\n ignoreIconSelected: true,\n }),\n };\n};\n\nexport const listConfigFont = (): IListConfigItem => {\n return {\n type: 'text',\n autoSelectFirstItem: true,\n httpRequestData: signal({\n objectInstance: returnListObject(listFont()),\n functionName: 'list',\n argumentsValue: [],\n }),\n configTemplateText: signal({\n fieldKey: 'key',\n getValue: (item) => item.label,\n ignoreIconSelected: true,\n }),\n };\n};\n\nexport const listConfigHeader = (): IListConfigItem => {\n return {\n type: 'text',\n autoSelectFirstItem: true,\n httpRequestData: signal({\n objectInstance: returnListObject(listHeader()),\n functionName: 'list',\n argumentsValue: [],\n }),\n configTemplateText: signal({\n fieldKey: 'key',\n getValue: (item) => item.label,\n ignoreIconSelected: true,\n }),\n };\n};\n\nexport const toolBarOptions = (mode: TYPE_MODE_BAR_CONFIG_OPTION, hasIconImage: boolean, hasIconPersonalize: boolean): Array<IQuillToolbarConfig> => {\n return (\n [\n {\n type: 'undo',\n classInclude: 'mr-[8px]',\n mode: ['default', 'basic'],\n width: 24,\n },\n {\n type: 'redo',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'line',\n mode: ['default', 'basic'],\n width: 1,\n },\n {\n type: 'header',\n classInclude: 'ml-[8px]',\n mode: [],\n width: 146,\n },\n {\n type: 'fontFamily',\n classInclude: 'ml-[8px]',\n mode: ['default'],\n width: 136,\n },\n {\n type: 'fontSize',\n classInclude: 'ml-[8px] mr-[8px]',\n mode: ['default'],\n width: 82,\n },\n {\n type: 'line',\n mode: ['default'],\n width: 1,\n },\n {\n type: 'color',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'background',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'line',\n mode: ['default', 'basic'],\n width: 1,\n },\n {\n type: 'bold',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'italic',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'underline',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'strikeThrough',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'line',\n mode: ['default', 'basic'],\n width: 1,\n },\n {\n type: 'adjust',\n mode: ['default'],\n width: 52,\n },\n {\n type: 'line',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'indentIncrease',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'indentDecrease',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'listBulleted',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'listNumbered',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'line',\n mode: ['default'],\n width: 1,\n },\n {\n type: 'personalize',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'blockquote',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'link',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'unLink',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'image',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'emoji',\n classInclude: 'ml-[8px]',\n mode: ['default'],\n width: 24,\n },\n ] as Array<IQuillToolbarConfig>\n ).filter((item) => {\n if (!item.mode?.includes(mode)) {\n return false;\n }\n if (item.type === 'image') {\n return hasIconImage;\n }\n if (item.type === 'personalize') {\n return hasIconPersonalize;\n }\n\n return true;\n });\n};\nexport const iconList = (): Array<{ key: string; icon: string }> => {\n return [\n {\n key: 'bold',\n icon: 'libs-ui-icon-editor-bold',\n },\n {\n key: 'italic',\n icon: 'libs-ui-icon-editor-italic',\n },\n {\n key: 'underline',\n icon: 'libs-ui-icon-editor-underlined',\n },\n {\n key: 'image',\n icon: 'libs-ui-icon-image-solid',\n },\n {\n key: 'link',\n icon: 'libs-ui-icon-link',\n },\n {\n key: 'undo',\n icon: 'libs-ui-icon-undo',\n },\n {\n key: 'redo',\n icon: 'libs-ui-icon-undo scale-x-[-1]',\n },\n {\n key: 'strike',\n icon: 'libs-ui-icon-editor-strike-through',\n },\n {\n key: 'blockquote',\n icon: 'libs-ui-icon-quote',\n },\n {\n key: 'ordered',\n icon: 'libs-ui-icon-list-numbered',\n },\n {\n key: 'bullet',\n icon: 'libs-ui-icon-list-bulleted',\n },\n {\n key: 'background',\n icon: 'libs-ui-icon-editor-color-background',\n },\n {\n key: 'color',\n icon: 'libs-ui-icon-editor-color-text',\n },\n {\n key: 'indent.-1',\n icon: 'libs-ui-icon-indent-decrease',\n },\n {\n key: 'indent.+1',\n icon: 'libs-ui-icon-indent-increase',\n },\n {\n key: 'align.',\n icon: 'align-quill libs-ui-icon-align-left',\n },\n {\n key: 'align.center',\n icon: 'align-quill libs-ui-icon-align-center',\n },\n {\n key: 'align.right',\n icon: 'align-quill libs-ui-icon-align-right',\n },\n {\n key: 'align.justify',\n icon: 'align-quill libs-ui-icon-align-justify',\n },\n {\n key: 'unLink',\n icon: 'libs-ui-icon-link-broken',\n },\n {\n key: 'emoji',\n icon: 'libs-ui-icon-face-smile',\n },\n ];\n};\n\nexport const uploadImageConfigDefault = (): IQuillUploadImageConfig => {\n return {\n modeCustom: false,\n zIndex: 1202,\n showIcon: true,\n maxImageSize: 5 * 1024 * 1024,\n onlyAcceptImageHttpsLink: false,\n functionUploadImage: async (files: Array<File>) => {\n const data = [];\n for (const file of files) {\n data.push(await convertFileToBase64_ObjectUrl(file));\n }\n return data;\n },\n };\n};\n\nexport const linkDefault = (): IQuillLink => {\n return {\n title: '',\n url: '',\n range: {\n index: 0,\n length: 0,\n },\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n OnInit,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n WritableSignal,\n} from '@angular/core';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsButtonsSelectColorComponent } from '@libs-ui/components-buttons-select-color';\nimport { IEmitSelectKey, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { LibsUiComponentsEmojiComponent } from '@libs-ui/components-inputs-emoji';\nimport { IMentionConfig, IMentionInsert, LibsUiComponentsInputsMentionDirective } from '@libs-ui/components-inputs-mention';\nimport { IValidLength, IValidRequired, LibsUiComponentsInputsValidComponent } from '@libs-ui/components-inputs-valid';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { IListConfigItem } from '@libs-ui/components-list';\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { LibsUiComponentsScrollOverlayDirective } from '@libs-ui/components-scroll-overlay';\nimport { LibsUiComponentsSkeletonComponent } from '@libs-ui/components-skeleton';\nimport { LibsUiComponentsSpinnerComponent } from '@libs-ui/components-spinner';\nimport { TYPE_OBJECT, TYPE_TEMPLATE_REF } from '@libs-ui/interfaces-types';\nimport { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';\nimport { LibsUiNotificationService } from '@libs-ui/services-notification';\nimport { ERROR_MESSAGE_EMPTY_VALID, ERROR_MESSAGE_MAX_LENGTH, ERROR_MESSAGE_MIN_LENGTH, get, getLabelBySizeFile, isNil, patternUrl, set, xssFilter } from '@libs-ui/utils';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport Quill, { RangeStatic, Sources, StringMap } from 'quill';\nimport { fromEvent, lastValueFrom, Subject, takeUntil, timer } from 'rxjs';\nimport { QuillDivBlot } from './blots-custom/div.component';\nimport { CustomImageBlot } from './blots-custom/image.component';\nimport { QuillMentionBlot } from './blots-custom/mention.component';\nimport { indentStyle } from './indent-attributor/indent-attributor.component';\nimport { IQuillBlotRegister, IQuillFunctionControlEvent, IQuillLink, IQuillSelectionChange, IQuillTextChange, IQuillToolbarConfig, IQuillUploadImageConfig, TYPE_MODE_BAR_CONFIG_OPTION } from './interfaces/quill.interface';\nimport { LibsUiComponentsInputsQuillLinkComponent } from './link/link.component';\nimport { LibsUiComponentsInputsQuillUploadImageComponent } from './upload-image/upload-image.component';\nimport { iconList, linkDefault, listConfigAlign, listConfigFont, listConfigHeader, listFont, toolBarOptions, uploadImageConfigDefault } from './utils/quill.define';\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-quill',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './quill.component.html',\n styleUrl: './quill.component.scss',\n imports: [\n TranslateModule,\n NgTemplateOutlet,\n LibsUiComponentsInputsMentionDirective,\n LibsUiComponentsScrollOverlayDirective,\n LibsUiComponentsLabelComponent,\n LibsUiComponentsDropdownComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsButtonsSelectColorComponent,\n LibsUiComponentsInputsValidComponent,\n LibsUiComponentsEmojiComponent,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsSpinnerComponent,\n LibsUiComponentsSkeletonComponent,\n ],\n})\nexport class LibsUiComponentsInputsQuillComponent implements OnInit, AfterViewInit, OnDestroy {\n protected qlEditorElement = signal<HTMLElement | undefined>(undefined);\n private timeoutScrollToSelectionWithElementScrollHeightAuto = signal<number | undefined>(undefined);\n protected loadingUploadImage = signal<boolean>(false);\n protected readonly timeDelayInit = signal<number>(20);\n protected messageError = signal<string>('');\n protected display = signal<boolean>(false);\n protected listConfigAlign = signal<IListConfigItem>(listConfigAlign());\n protected alignSelected = signal<IEmitSelectKey | undefined>(undefined);\n protected iconAlignSelectedComputed = computed(() => get(this.alignSelected(), 'item.icon'));\n protected listConfigFont = signal<IListConfigItem>(listConfigFont());\n protected fontSelected = signal<IEmitSelectKey | undefined>(undefined);\n protected labelFontSelectedComputed = computed(() => get(this.fontSelected(), 'item.label') || 'Sans Serif');\n protected listConfigHeader = signal<IListConfigItem>(listConfigHeader());\n protected headerSelected = signal<IEmitSelectKey | undefined>(undefined);\n protected labelHeaderSelectedComputed = computed(() => get(this.headerSelected(), 'item.label') || 'Normal');\n protected size = signal<{ value: number }>({ value: 14 });\n protected showMoreAction = signal<boolean>(false);\n protected link = signal<IQuillLink>(linkDefault());\n protected toolbarOptionsConfig: WritableSignal<Array<IQuillToolbarConfig>> = signal([]);\n\n protected displayShowMoreToolbar = computed(() => this.toolbarOptionsConfig().some((item) => item.display === false));\n protected displaySkeleton = computed(() => this.toolbarOptionsConfig().every((item) => item.display === undefined));\n\n private timeCalculationToolBar = signal<number | undefined>(undefined);\n private popoverFunctionControl = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n private quill = signal<Quill | undefined>(undefined);\n private handlers = signal<Record<string, (...params: Array<unknown>) => void>>({ undo: this.handleUndo.bind(this), redo: this.handleRedo.bind(this) });\n private showMention = signal<boolean>(false);\n private addEditLinkComponentRef = signal<ComponentRef<LibsUiComponentsInputsQuillLinkComponent> | undefined>(undefined);\n private uploadImageComponentRef = signal<ComponentRef<LibsUiComponentsInputsQuillUploadImageComponent> | undefined>(undefined);\n private onDestroy = new Subject<void>();\n private dynamicComponentService = inject(LibsUiDynamicComponentService);\n private translate = inject(TranslateService);\n\n readonly isShowToolBar = input<boolean, boolean | undefined>(true, { transform: (val) => val ?? true });\n readonly isToolbarPositionFixed = input<boolean, boolean | undefined>(false, { transform: (val) => val ?? false });\n readonly classIncludeToolbar = input<string>('');\n readonly stylesIncludeToolbar = input<TYPE_OBJECT>();\n readonly toolbarConfig = input<{\n type: TYPE_MODE_BAR_CONFIG_OPTION;\n config?: Array<IQuillToolbarConfig>;\n }>();\n readonly placeholder = input<string, string | undefined>('i18n_import_content', { transform: (value) => value || 'i18n_import_content' });\n readonly label = input<ILabel | undefined>();\n readonly item = model<TYPE_OBJECT>();\n /**đặt cờ này bằng false để tối ưu hiệu năng, và chỉ lấy dữ liệu ra khi có yêu cầu lấy dữ liệu để gửi lên server , gọi refreshItemValue để cập nhật giá tri thủ công*/\n readonly autoUpdateValueWhenTextChange = input<boolean, boolean | undefined>(true, { transform: (value) => value ?? true });\n readonly fieldNameBind = input<string>('value');\n readonly readonly = input<boolean>();\n readonly showErrorLabel = input<boolean>(true);\n readonly showErrorBorder = input<boolean>(false);\n readonly onlyShowErrorBorderInContent = input<boolean>(false);\n readonly classIncludeTemplate = input<string>();\n readonly classInclude = input<string>();\n readonly handlersExpand = input<Array<{ title: string; action: () => void }>>();\n readonly validRequired = input<IValidRequired>();\n readonly validMinLength = input<IValidLength>();\n readonly validMaxLength = input<IValidLength>();\n readonly zIndex = input<number, number | undefined>(1250, { transform: (value) => value || 1250 });\n readonly dataConfigMention = input<IMentionConfig>();\n readonly blotsRegister = input<Array<IQuillBlotRegister>>();\n readonly autoFocus = input<boolean>();\n readonly focusBottom = input<boolean>();\n readonly blockUndoRedoKeyboard = input<boolean>();\n readonly templateToolBarPersonalize = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly template = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly uploadImageConfig = input<IQuillUploadImageConfig, IQuillUploadImageConfig | undefined>(uploadImageConfigDefault(), { transform: (value) => value || uploadImageConfigDefault() });\n readonly heightAuto = input<boolean>();\n readonly elementScrollHeightAuto = input<HTMLElement>();\n readonly ignoreShowPopupEditLink = input<boolean>();\n readonly ignoreCommunicateMicroEventPopup = input<boolean>();\n readonly outShowPopupEditLink = output<{\n dataLink: IQuillLink;\n callback: (linkEdit: { title: string; link: string }) => Promise<void>;\n }>();\n readonly outMessageError = output<string>();\n readonly outBlur = output<void>();\n readonly outFocus = output<void>();\n readonly outChange = output<string>();\n readonly outFunctionsControl = output<IQuillFunctionControlEvent>();\n readonly outSelectionChange = output<IQuillSelectionChange>();\n readonly outTextChange = output<IQuillTextChange>();\n readonly outContextMenu = output<MouseEvent>();\n\n readonly wrapperEditorEl = viewChild.required<ElementRef>('wrapperEditor');\n readonly editorEl = viewChild.required<ElementRef>('editor');\n readonly quillOptionEl = viewChild.required<ElementRef>('quillOption');\n readonly quillEditorEl = viewChild.required<ElementRef>('quillEditor');\n readonly toolbarItemsEl = viewChild.required<ElementRef>('toolbarItems');\n\n private notificationService = inject(LibsUiNotificationService);\n private cdr = inject(ChangeDetectorRef);\n\n constructor() {\n effect(() => {\n setTimeout(() => {\n const classes = `${this.classInclude() || ''} h-full w-full`\n .split(' ')\n .map((item) => item.trim())\n .filter((item) => item);\n this.getQlEditorElement()?.classList.add(...classes);\n }, this.timeDelayInit() + 10);\n });\n\n effect(() => {\n const type = this.toolbarConfig()?.type || 'default';\n const hasIconImage = this.uploadImageConfig().showIcon ?? false;\n const hasIconPersonalize = !!this.templateToolBarPersonalize();\n untracked(() => {\n this.toolbarOptionsConfig.set(this.toolbarConfig()?.config || toolBarOptions(type, hasIconImage, hasIconPersonalize));\n this.cdr.detectChanges();\n this.calculatorToolbar();\n });\n });\n }\n\n ngOnInit() {\n this.outFunctionsControl.emit(this.FunctionsControl);\n }\n\n public get FunctionsControl(): IQuillFunctionControlEvent {\n return {\n checkIsValid: this.validate.bind(this),\n refreshItemValue: this.updateValueByRootQuillHtml.bind(this),\n setContent: this.setContent.bind(this),\n insertText: this.insertText.bind(this),\n insertLink: this.insertLink.bind(this),\n insertImage: this.insertImage.bind(this),\n setFontSize: this.setFontSize.bind(this),\n setColor: async (color: string) => this.setStyle('color', color),\n setBackground: async (color: string) => this.setStyle('background', color),\n quill: () => this.quill() as Quill,\n scrollToSelectionWithElementScrollHeightAuto: this.scrollToSelectionWithElementScrollHeightAuto.bind(this),\n insertEmbed: async (range: { index: number; indexSelect: number; length?: number }, type: string, data: unknown, sources?: Sources) => {\n this.quill()?.insertEmbed(range.index, type, data, sources || Quill.sources.USER);\n this.quill()?.setSelection(range.indexSelect, range.length || 0, Quill.sources.USER);\n this.scrollToSelectionWithElementScrollHeightAuto(range.indexSelect);\n return;\n },\n reCalculatorToolbar: this.calculatorToolbar.bind(this),\n };\n }\n\n async ngAfterViewInit() {\n this.setHandlerFunction();\n await lastValueFrom(timer(this.timeDelayInit()));\n this.initQuill();\n\n this.setContent(get(this.item(), this.fieldNameBind(), ''));\n this.handlerTextChange();\n this.handlerSelectionChange();\n this.handlerPaste();\n // gọi hàm này để quill đánh dấu là đã focus trong khi quill chưa khởi tạo xong để không bị scroll xuống dưới.sau khi quill khởi tạo xong và check nếu đang focus đang được bật thì nó không gọi lại hàm focus nữa\n this.quill()?.focus();\n if (this.autoFocus()) {\n this.display.set(true);\n this.quill()?.blur();\n }\n fromEvent(window, 'resize').pipe(takeUntil(this.onDestroy)).subscribe(this.calculatorToolbar.bind(this));\n await lastValueFrom(timer(400));\n this.display.set(true);\n const cursorSpan = this.quill()?.root.querySelector('.ql-cursor');\n if (cursorSpan) {\n cursorSpan.remove();\n }\n }\n\n private initQuill() {\n const size = Quill.import('attributors/style/size');\n const alignStyle = Quill.import('attributors/style/align');\n const icons = Quill.import('ui/icons');\n const italic = Quill.import('formats/italic');\n const bold = Quill.import('formats/bold');\n size.whitelist = [\n '8px',\n '9px',\n '10px',\n '11px',\n '12px',\n '13px',\n '14px',\n '15px',\n '16px',\n '17px',\n '18px',\n '19px',\n '20px',\n '21px',\n '22px',\n '23px',\n '24px',\n '25px',\n '26px',\n '27px',\n '28px',\n '29px',\n '30px',\n '31px',\n '32px',\n '33px',\n '34px',\n '35px',\n '36px',\n '37px',\n '38px',\n '39px',\n '40px',\n '41px',\n '42px',\n '43px',\n '44px',\n '45px',\n '46px',\n '47px',\n '48px',\n '49px',\n '50px',\n '51px',\n '52px',\n '53px',\n '54px',\n '55px',\n '56px',\n '57px',\n '58px',\n '59px',\n '60px',\n '61px',\n '62px',\n '63px',\n '64px',\n '65px',\n '66px',\n '67px',\n '68px',\n '69px',\n '70px',\n '71px',\n '72px',\n ];\n\n italic.tagName = 'i';\n bold.tagName = 'b';\n Quill.register(bold, true);\n Quill.register(italic, true);\n Quill.register(size, true);\n Quill.register(CustomImageBlot, true);\n Quill.register(QuillDivBlot, true);\n Quill.register(alignStyle, true);\n Quill.register(QuillMentionBlot, true);\n this.blotsRegister()?.forEach((item) => {\n Quill.register(item.component, true);\n });\n Quill.register({ 'formats/indent': indentStyle }, true);\n fromEvent<MouseEvent>(this.quillEditorEl()?.nativeElement, 'contextmenu')\n .pipe(takeUntil(this.onDestroy))\n .subscribe((e) => this.outContextMenu.emit(e));\n iconList().forEach((element) => set(icons, element.key, `<span class=\"${element.icon} hover:text-[var(--libs-ui-color-light-1)] text-[16px] text-[#6a7383]\"></span>`));\n this.quill.set(\n new Quill(this.quillEditorEl()?.nativeElement, {\n modules: {\n toolbar: {\n container: this.quillOptionEl()?.nativeElement,\n handlers: this.handlers(),\n },\n clipboard: {\n matchVisual: false,\n },\n history: {\n delay: 1000,\n maxStack: 100,\n userOnly: false,\n },\n keyboard: {\n bindings: {\n enter: {\n key: 13,\n handler: () => (this.showMention() ? false : true),\n },\n },\n },\n },\n readOnly: this.readonly(),\n placeholder: this.translate.instant(this.placeholder()),\n theme: 'snow',\n bounds: this.heightAuto() ? this.wrapperEditorEl()?.nativeElement : this.quillEditorEl()?.nativeElement,\n scrollingContainer: this.heightAuto() ? this.wrapperEditorEl()?.nativeElement : null,\n })\n );\n\n this.quill()?.keyboard.addBinding({ key: 'Backspace' }, this.noPreventEmbedDeletion.bind(this));\n this.quill()?.keyboard.addBinding({ key: 'Delete' }, this.noPreventEmbedDeletion.bind(this));\n this.setupUndoRedoBlocking();\n }\n\n private setupUndoRedoBlocking(): void {\n const editorRoot = this.quill()?.root;\n if (editorRoot && this.blockUndoRedoKeyboard()) {\n const keydownHandler = (e: KeyboardEvent) => {\n const isUndo = (e.key === 'z' || e.key === 'Z') && (e.ctrlKey || e.metaKey) && !e.shiftKey;\n const isRedo = ((e.key === 'z' || e.key === 'Z') && (e.ctrlKey || e.metaKey) && e.shiftKey) || ((e.key === 'y' || e.key === 'Y') && e.ctrlKey);\n\n if (isUndo || isRedo) {\n e.preventDefault();\n e.stopPropagation();\n console.log(`Blocking ${isUndo ? 'undo' : 'redo'} keyboard shortcut`);\n }\n };\n\n editorRoot.addEventListener('keydown', keydownHandler, true);\n\n this.onDestroy.subscribe(() => {\n editorRoot.removeEventListener('keydown', keydownHandler, true);\n });\n }\n }\n\n private noPreventEmbedDeletion(range: RangeStatic): boolean {\n if (!this.quill()) return false;\n const delta = this.quill()?.getContents(range.index, 1);\n\n if (delta?.ops.some((option) => this.blotsRegister()?.find((item) => get(option.insert, item.component['blotName']) && item.ignoreDelete))) {\n return false; // Ngăn không cho Quill xử lý xóa\n }\n\n return true;\n }\n\n private setHandlerFunction() {\n this.handlers.update((item) => ({\n ...item,\n image: this.handlerShowUploadImage.bind(this),\n emoji: () => {\n return;\n },\n }));\n let link = false;\n const handlersExpand = this.handlersExpand();\n if (handlersExpand && handlersExpand.length) {\n handlersExpand.forEach((element) => {\n if (element.title && element.action) {\n if (element.title === 'link') {\n link = true;\n }\n this.handlers.update((item) => ({ ...item, [element.title]: element.action }));\n }\n });\n }\n if (!link) {\n this.handlers.update((item) => ({ ...item, link: this.handleShowUploadLink.bind(this), unLink: this.handlerUnInsertLink.bind(this) }));\n }\n }\n\n private adjustIndexForImages(index: number) {\n const content = this.quill()?.root;\n let imageCount = 0;\n let adjustedIndex = 0;\n const adjustTextIndex = (node: Node) => {\n if (adjustedIndex > index) {\n return;\n }\n if (node.nodeType === Node.TEXT_NODE) {\n adjustedIndex += node.textContent?.length || 0;\n return;\n }\n if (node.nodeType === Node.ELEMENT_NODE && node.nodeName === 'IMG') {\n if (adjustedIndex <= index) {\n imageCount++;\n }\n return;\n }\n if (node.nodeType === Node.ELEMENT_NODE) {\n Array.from(node.childNodes).forEach(adjustTextIndex);\n }\n };\n adjustTextIndex(content as Node);\n return imageCount;\n }\n\n private handlerSelectionChange() {\n this.quill()?.on('selection-change', (range: RangeStatic, oldRange: RangeStatic, source: Sources) => {\n if (this.readonly()) {\n return;\n }\n if (range === null && oldRange !== null) {\n this.outBlur.emit();\n return;\n }\n if (range !== null && oldRange === null) {\n this.outFocus.emit();\n return;\n }\n const format = this.quill()?.getFormat();\n if (format) {\n this.getFont(format);\n this.getFontSize(format);\n }\n this.outSelectionChange.emit({\n quill: this.quill() as Quill,\n range,\n oldRange,\n source,\n });\n if (range.length === 0 && format?.link && source === 'user') {\n const selection = document.getSelection();\n const anchorNode = selection?.anchorNode;\n let linkNode = anchorNode as HTMLAnchorElement;\n while (linkNode && linkNode.tagName !== 'A') {\n linkNode = linkNode.parentNode as HTMLAnchorElement;\n }\n if (linkNode && linkNode.tagName === 'A') {\n const linkText = linkNode.innerText;\n const linksIndices: Array<number> = [];\n let indexReturn: number | undefined = -1;\n while (!isNil(indexReturn) && indexReturn < range.index) {\n const textContent = this.quill()?.getText();\n const linkIndex = textContent?.indexOf(linkText, linksIndices.length > 0 ? linksIndices[linksIndices.length - 1] + linkText.length : 0);\n if (!isNil(linkIndex)) {\n if (linkIndex !== -1) {\n linksIndices.push(linkIndex);\n indexReturn = linkIndex + linkText.length;\n }\n if (linkIndex === -1) {\n indexReturn = undefined;\n }\n }\n }\n if (linksIndices && linksIndices.length) {\n const rangeIndex = linksIndices[linksIndices.length - 1];\n const countImage = this.adjustIndexForImages(rangeIndex);\n setTimeout(() => {\n this.link.set({\n title: linkText,\n url: linkNode.href,\n range: {\n index: rangeIndex + countImage,\n length: linkText.length,\n },\n });\n this.popoverFunctionControl()?.showPopover(linkNode);\n }, 250);\n }\n }\n }\n });\n }\n\n private handlerPaste() {\n set<any>(this.quill, 'root.onpaste', async (event: ClipboardEvent) => {\n if (!event || !event.clipboardData) {\n return;\n }\n const files = event.clipboardData.files;\n if (!files.length) {\n if (event.clipboardData.getData('text')) {\n this.scrollToSelectionWithElementScrollHeightAuto();\n }\n return;\n }\n event.preventDefault();\n await this.uploadImagesAndInsert(files);\n });\n }\n\n private handlerTextChange() {\n this.quill()?.on('text-change', (event) => {\n this.outTextChange.emit({\n quill: this.quill() as Quill,\n delta: event,\n });\n setTimeout(() => {\n if (event?.ops[1]?.insert === '\\n') {\n const range = { index: event?.ops[0].retain as number };\n const currentLeaf = this.quill()?.getLeaf(range.index)[0];\n const nextLeaf = this.quill()?.getLeaf(range.index + 1)[0];\n this.quill()?.insertEmbed(range.index, 'break', true, 'user');\n if (nextLeaf === null || currentLeaf.parent !== nextLeaf.parent) {\n this.quill()?.insertEmbed(range.index, 'break', true, 'user');\n }\n this.quill()?.setSelection((range.index || 0) + 1, 0, Quill.sources.SILENT);\n }\n });\n if (!this.autoUpdateValueWhenTextChange()) {\n return;\n }\n this.updateValueByRootQuillHtml();\n });\n }\n\n private updateValueByRootQuillHtml() {\n const html = this.removeUnwantedPart(this.quill()?.root.innerHTML || '');\n if (!this.quill()?.root.getElementsByTagName('img').length && !this.quill()?.getText()) {\n set<any>(this.item(), this.fieldNameBind(), '');\n this.validate();\n this.outChange.emit(get(this.item(), this.fieldNameBind()));\n return;\n }\n this.convertInnerHTMLAndSetValue(html);\n this.validate();\n this.outChange.emit(get(this.item(), this.fieldNameBind()));\n }\n\n protected handlerPopoverFunctionControl(event: IPopoverFunctionControlEvent) {\n this.popoverFunctionControl.set(event);\n }\n\n protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n if (event === 'remove') {\n this.link.set(linkDefault());\n }\n }\n\n protected handlerUnlink(event: Event) {\n event.stopPropagation();\n const link = this.link();\n this.quill()?.formatText(link.range.index, link.range.length, { link: false });\n this.popoverFunctionControl()?.removePopoverOverlay();\n }\n\n protected handlerEdit(event: Event) {\n event.stopPropagation();\n const link = this.link();\n if (this.ignoreShowPopupEditLink()) {\n this.outShowPopupEditLink.emit({\n dataLink: link,\n callback: async (linkEdit: { title: string; link: string }) => {\n if (link instanceof Object && link.url) {\n this.quill()?.deleteText(link.range.index, link.range.length, Quill.sources.USER);\n this.quill()?.insertText(link.range.index, linkEdit.title, 'link', linkEdit.link);\n return;\n }\n this.insertLink(linkEdit.title, linkEdit.link);\n },\n });\n return;\n }\n this.handleShowUploadLink(link);\n this.popoverFunctionControl()?.removePopoverOverlay();\n }\n\n private async calculatorToolbar() {\n this.cdr.detectChanges();\n this.timeCalculationToolBar.set(\n setTimeout(() => {\n const toolbarWidth = this.toolbarItemsEl().nativeElement.offsetWidth || 0;\n let totalWidth = 32 + 28;\n this.toolbarOptionsConfig.update((configs) => {\n configs.forEach((item, index) => {\n item.display = true;\n totalWidth += item.width;\n if (item.type === 'line') {\n const nextItemWidth = totalWidth + this.toolbarOptionsConfig()[+index + 1].width;\n const preItem = this.toolbarOptionsConfig()[+index - 1];\n if (nextItemWidth > toolbarWidth && preItem.display === true) {\n item.display = undefined;\n return;\n }\n }\n if (totalWidth > toolbarWidth) {\n item.display = false;\n return;\n }\n });\n return [...configs];\n });\n this.cdr.detectChanges();\n }, 600)\n );\n }\n\n protected setStyle(type: string, data: string | number) {\n this.quill()?.format(type, data);\n }\n\n private getFontSize(format: StringMap) {\n const fontSize = format?.size?.toString()?.replace('px', '');\n if (isNaN(parseFloat(fontSize))) {\n this.size.set({ value: 14 });\n return;\n }\n this.size.set({ value: parseFloat(fontSize) });\n }\n\n private getFont(format: StringMap) {\n const font = listFont().find((item) => item.key === format.font);\n if (!font) {\n this.fontSelected.set({ key: '', item: listFont().find((item) => item.key === '') });\n return;\n }\n this.fontSelected.set({ key: format.font, item: font });\n }\n\n protected handleUndo() {\n this.quill()?.history?.undo();\n }\n\n protected handleRedo() {\n this.quill()?.history?.redo();\n }\n\n protected async setContent(content: string) {\n const contentXssFilter = await xssFilter(this.removeUnwantedPart(content || ''));\n await lastValueFrom(timer(1));\n (this.quill()?.root as HTMLElement).innerHTML = contentXssFilter;\n if (!this.autoFocus()) {\n return;\n }\n await lastValueFrom(timer(100));\n const target = this.quillEditorEl()?.nativeElement.querySelector('[contenteditable=\"true\"]');\n const contentScroll = this.heightAuto() ? this.wrapperEditorEl()?.nativeElement : target;\n contentScroll.scrollTop = contentScroll.scrollHeight;\n if (this.focusBottom()) {\n this.quill()?.setSelection(contentXssFilter.length, 0, Quill.sources.SILENT);\n return;\n }\n this.quill()?.setSelection(0, 0, Quill.sources.SILENT);\n }\n\n protected handlerAddEmoji(emoji: unknown) {\n this.insertText(emoji as string, undefined, true);\n }\n\n protected handleShowUploadLink(event: unknown) {\n this.addEditLinkComponentRef.set(this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsInputsQuillLinkComponent));\n const instance = this.addEditLinkComponentRef()?.instance;\n const selection = this.quill()?.getSelection();\n const textSelected = selection?.length ? this.quill()?.getText(selection?.index, selection?.length) : '';\n const data = event as IQuillLink | undefined;\n this.addEditLinkComponentRef()?.setInput('zIndex', this.zIndex());\n this.addEditLinkComponentRef()?.setInput('title', data?.title || textSelected);\n this.addEditLinkComponentRef()?.setInput('link', data?.url || '');\n this.addEditLinkComponentRef()?.setInput('ignoreCommunicateMicroEvent', this.ignoreCommunicateMicroEventPopup());\n instance?.outSaveLink.subscribe((item: { title: string; link: string }) => {\n if (data instanceof Object && data.url) {\n this.quill()?.deleteText(data.range.index, data.range.length, Quill.sources.USER);\n this.quill()?.insertText(data.range.index, item.title, 'link', item.link);\n return;\n }\n this.insertLink(item.title, item.link);\n });\n instance?.outClose.subscribe(() => this.dynamicComponentService.remove(this.addEditLinkComponentRef()));\n this.dynamicComponentService.addToBody(this.addEditLinkComponentRef());\n }\n\n protected handlerUnInsertLink() {\n const selection = this.quill()?.getSelection(true);\n if (!isNil(selection)) {\n this.quill()?.formatText(selection, 'link', false);\n }\n }\n\n protected async validate() {\n this.messageError.set('');\n const validRequired = this.validRequired();\n const item = this.item();\n const fieldNameBind = this.fieldNameBind();\n const value = get<any>(item, fieldNameBind);\n if (validRequired && validRequired.isRequired && (!fieldNameBind || !value || !value.trim())) {\n this.messageError.set(validRequired.message || ERROR_MESSAGE_EMPTY_VALID);\n this.outMessageError.emit(this.messageError());\n return false;\n }\n const validMinLength = this.validMinLength();\n if (validMinLength && fieldNameBind && value && value.trim().length < validMinLength.length) {\n this.messageError.set(validMinLength.message || ERROR_MESSAGE_MIN_LENGTH);\n this.outMessageError.emit(this.messageError());\n return false;\n }\n const validMaxLength = this.validMaxLength();\n if (validMaxLength && fieldNameBind && value && value.trim().length > this.validMaxLength.length) {\n this.messageError.set(validMaxLength.message || ERROR_MESSAGE_MAX_LENGTH);\n this.outMessageError.emit(this.messageError());\n return false;\n }\n this.outMessageError.emit(this.messageError());\n return true;\n }\n\n protected async insertImage(content: string, index?: number) {\n const selection = index ?? this.quill()?.getSelection(true).index;\n if (!isNil(selection)) {\n this.quill()?.insertEmbed(selection, 'image', content);\n this.quill()?.setSelection(selection + 1, 0);\n }\n }\n\n private async insertText(content: string, index?: number, focusLast?: boolean) {\n index = index ?? this.quill()?.getSelection(true).index;\n if (!isNil(index)) {\n this.quill()?.insertText(index, content, Quill.sources.USER);\n if (focusLast) {\n await lastValueFrom(timer(0));\n this.quill()?.setSelection(index + content.length, 0, Quill.sources.USER);\n }\n }\n }\n\n private async insertLink(text: string, url: string, index?: number) {\n const selection = this.quill()?.getSelection(true);\n const indexInsert = index ?? selection?.index;\n if (selection?.length) {\n this.quill()?.deleteText(selection.index, selection.length, Quill.sources.USER);\n }\n if (!isNil(indexInsert)) {\n this.quill()?.insertText(indexInsert, text, 'link', url);\n }\n }\n\n private convertInnerHTMLAndSetValue(html: string) {\n this.setStyleForContent();\n set<any>(this.item(), this.fieldNameBind(), html);\n }\n\n private setStyleForContent() {\n const styleArray = [\n { selector: '.ql-font-Arial', style: 'font-family: Arial' },\n { selector: '.ql-font-sans-serif', style: 'font-family: sans-serif' },\n { selector: '.ql-font-serif', style: 'font-family: serif' },\n { selector: '.ql-font-monospace', style: 'font-family: monospace' },\n { selector: '.ql-font-Helvetica', style: 'font-family: Helvetica' },\n { selector: '.libs-ui-quill-format-image', style: 'max-width: 100%; height: auto', overrideStyle: true },\n { selector: '.libs-ui-quill-mention', style: 'font-weight: 600;-moz-osx-font-smoothing: grayscale;-webkit-font-smoothing: antialiased; color: #7239EA', overrideStyle: true },\n { selector: 'blockquote', style: 'border-left: 4px solid #ccc; margin-bottom: 5px; margin-top: 5px; padding-left: 16px', overrideStyle: true },\n ];\n this.blotsRegister()?.forEach((item) => {\n styleArray.push({ selector: `.${item.className}`, style: item.style, overrideStyle: true });\n });\n styleArray.forEach((item) => {\n const elements = this.quill()?.root.querySelectorAll(item.selector);\n elements?.forEach((element) => {\n if (item.overrideStyle) {\n element.setAttribute('style', item.style);\n return;\n }\n // Fixbug issue: https://admin-cv.mobio.vn/issues/49092\n let styleExist = element.getAttribute('style');\n if (styleExist) {\n ['font-family: Arial', 'font-family: sans-serif', 'font-family: serif', 'font-family: monospace', 'font-family: Helvetica'].forEach((font) => {\n styleExist = (styleExist?.includes(`${font};`) ? styleExist?.replace(`${font};`, '') : styleExist?.replace(font, '')) as string;\n });\n }\n element.setAttribute('style', styleExist ? `${styleExist}${styleExist[styleExist.length - 1] === ';' ? '' : ';'}${item.style};` : item.style);\n });\n });\n }\n\n protected handleToggleMention(show: boolean) {\n this.showMention.set(show);\n }\n\n private handlerShowUploadImage() {\n if (this.uploadImageConfig().modeCustom) {\n this.uploadImageComponentRef.set(this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsInputsQuillUploadImageComponent));\n const instance = this.uploadImageComponentRef()?.instance;\n this.uploadImageComponentRef()?.setInput('uploadImageConfig', this.uploadImageConfig());\n this.uploadImageComponentRef()?.setInput('ignoreCommunicateMicroEvent', this.ignoreCommunicateMicroEventPopup());\n instance?.outClose.subscribe((link: string | void) => {\n this.dynamicComponentService.remove(this.uploadImageComponentRef());\n if (link) {\n this.insertImage(link);\n }\n });\n this.dynamicComponentService.addToBody(this.uploadImageComponentRef());\n\n return;\n }\n\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('accept', 'image/*');\n input.click();\n input.onchange = async () => {\n await this.uploadImagesAndInsert(input?.files);\n };\n }\n\n private async uploadImagesAndInsert(files?: FileList | null) {\n if (!files) {\n return;\n }\n const maxImageSize = this.uploadImageConfig()?.maxImageSize || 5 * 1024 * 1024;\n const images = Array.from(files).filter((file) => file && file.type.split('/')[0] === 'image' && (!this.uploadImageConfig().maxImageSize || file.size <= maxImageSize));\n if (!images.length) {\n this.notificationService.showCompTypeTextWarning(this.translate.instant('i18n_note_upload_image_volume', { value: getLabelBySizeFile(maxImageSize) }), { timeRemove: 8000 });\n return;\n }\n try {\n this.loadingUploadImage.set(true);\n const indexInsert = this.quill()?.getSelection(true).index;\n const links = await this.uploadImageConfig().functionUploadImage?.(images);\n if (!links?.length) {\n return;\n }\n links.forEach((link) => {\n if (!link || (this.uploadImageConfig().onlyAcceptImageHttpsLink && (link instanceof ArrayBuffer || !new RegExp(patternUrl()).test(link)))) {\n return;\n }\n this.insertImage(link as string, indexInsert);\n });\n this.scrollToSelectionWithElementScrollHeightAuto(indexInsert);\n } catch (error) {\n console.error(error);\n } finally {\n this.loadingUploadImage.set(false);\n }\n return;\n }\n\n private insertMention(event: IMentionInsert) {\n const range = this.quill()?.getSelection();\n if (!range) {\n return;\n }\n const cursorPos = range.index;\n const startPosInsert = cursorPos - event.lengthKey;\n this.quill()?.deleteText(startPosInsert, event.lengthKey, Quill.sources.USER);\n this.quill()?.insertEmbed(startPosInsert, 'mention', event.data, Quill.sources.USER);\n this.insertText(' ', startPosInsert + 1);\n this.quill()?.setSelection(startPosInsert + 2, 0, Quill.sources.USER);\n }\n\n protected handlerInsertMention(data: IMentionInsert) {\n this.insertMention(data);\n }\n\n protected async setFontSize(size: number) {\n this.quill()?.format('size', `${size}px`);\n }\n\n protected handlerValueChange(value: number | string) {\n this.size.update((item) => ({ ...item, value: value as number }));\n this.quill()?.format('size', `${this.size().value}px`);\n }\n\n protected handleSelectAlign(event: IEmitSelectKey | undefined) {\n this.alignSelected.set(event);\n this.setStyle('align', event?.key as string);\n }\n\n protected handleSelectFont(event: IEmitSelectKey | undefined) {\n this.fontSelected.set(event);\n this.setStyle('font', event?.key as string);\n }\n\n protected handlerChangeShowMoreAction(event: Event) {\n event.stopPropagation();\n this.showMoreAction.update((item) => !item);\n }\n\n private scrollToSelectionWithElementScrollHeightAuto(index?: number) {\n clearTimeout(this.timeoutScrollToSelectionWithElementScrollHeightAuto());\n if (!this.elementScrollHeightAuto()) {\n return;\n }\n this.timeoutScrollToSelectionWithElementScrollHeightAuto.set(\n setTimeout(() => {\n index = index ?? this.quill()?.getSelection(true).index;\n if (!isNil(index)) {\n const bounds = this.quill()?.getBounds(index, 1);\n this.elementScrollHeightAuto()?.scrollTo(0, (bounds?.top || 0) - 20);\n }\n }, 100)\n );\n }\n\n private getQlEditorElement() {\n if (this.qlEditorElement()) {\n return this.qlEditorElement();\n }\n for (const elementNode of this.quillEditorEl().nativeElement.getElementsByClassName('ql-editor')) {\n this.qlEditorElement.set(elementNode as HTMLElement);\n break;\n }\n return this.qlEditorElement();\n }\n\n private removeUnwantedPart(html: string) {\n if (!html) {\n return '';\n }\n return html\n .replace(/^\\s*<p><br><\\/p>/, '')\n .replace(/<div><br><\\/div>/gi, '')\n .replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\n }\n\n protected handleSelectHeader(event: IEmitSelectKey | undefined) {\n this.headerSelected.set(event);\n this.setStyle('header', event?.key as string);\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n this.dynamicComponentService.remove(this.addEditLinkComponentRef());\n this.dynamicComponentService.remove(this.uploadImageComponentRef());\n clearTimeout(this.timeCalculationToolBar());\n clearTimeout(this.timeoutScrollToSelectionWithElementScrollHeightAuto());\n }\n}\n","<div class=\"flex flex-col w-full h-full\">\n @if (label(); as label) {\n <libs_ui-components-label\n [classInclude]=\"label.classInclude\"\n [required]=\"label.required\"\n [labelLeft]=\"label.labelLeft\" />\n }\n <div\n #wrapperEditor\n [attr.heightAuto]=\"heightAuto()\"\n [attr.isToolbarPositionFixed]=\"isToolbarPositionFixed()\"\n class=\"libs-ui-quill-wrapper w-full h-full relative flex flex-col\"\n [class.libs-ui-border-error-general]=\"messageError() && showErrorBorder() && !onlyShowErrorBorderInContent()\"\n [class.rounded-[4px]]=\"messageError() && showErrorBorder() && !onlyShowErrorBorderInContent()\">\n <div\n #editor\n class=\"libs-ui-quill\"\n [attr.showError]=\"messageError() && showErrorBorder() && onlyShowErrorBorderInContent()\"\n [class.!hidden]=\"!display()\">\n <div\n #quillOption\n [class.!top-[-9999px]]=\"!isShowToolBar()\"\n [class.!left-[-9999px]]=\"!isShowToolBar()\"\n [style]=\"stylesIncludeToolbar()\"\n [class.pointer-events-none]=\"readonly() || loadingUploadImage()\"\n class=\"{{ isToolbarPositionFixed() ? 'fixed !z-10 w-[510px] shadow-[0px_4px_16px_0px_rgba(0,20,51,0.10)] rounded-[4px] bg-[#ffffff] libs-ui-quill-toolbar-animation' : '' }} {{ classIncludeToolbar() }} h-[44px] shrink-0\"\n [class.bg-[#f8f9fa]]=\"!readonly() && !loadingUploadImage()\"\n [class.libs-ui-readonly-background]=\"readonly() || loadingUploadImage()\">\n <ng-container *ngTemplateOutlet=\"toolbar\"></ng-container>\n </div>\n <div\n #quillEditor\n LibsUiComponentsInputsMentionDirective\n [timeDelayInit]=\"timeDelayInit() + 50\"\n [mentionConfig]=\"dataConfigMention()\"\n [class.libs-ui-readonly-background]=\"readonly() || loadingUploadImage()\"\n [class.pointer-events-none]=\"loadingUploadImage()\"\n (outToggle)=\"handleToggleMention($event)\"\n (outInsertMention)=\"handlerInsertMention($event)\"></div>\n <ng-container\n #qlEditorScroll\n LibsUiComponentsScrollOverlayDirective\n [ignoreInit]=\"!qlEditorElement()\"\n [elementScroll]=\"qlEditorElement()\" />\n </div>\n @if (template(); as template) {\n <div [class]=\"classIncludeTemplate()\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n }\n @if (loadingUploadImage()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n @if (messageError() && showErrorLabel()) {\n <div class=\"flex items-center leading-normal mt-[8px]\">\n <span class=\"text-[#ff5454] libs-ui-font-h7r\">{{ messageError() | translate }}</span>\n </div>\n }\n</div>\n\n<ng-template #toolbar>\n <div\n class=\"toolbar h-full w-full shrink-0\"\n #toolbarItems>\n @if (displaySkeleton()) {\n <libs_ui-components-skeleton\n class=\"w-full h-full\"\n [config]=\"{\n rows: [\n {\n item: { classIncludeItem: '!rounded-none' },\n },\n ],\n }\" />\n }\n <div class=\"ql-formats items-center px-[16px] py-[4px]\">\n @for (option of toolbarOptionsConfig(); track option) {\n <div\n class=\"items-center\"\n [class.hidden]=\"!option.display\"\n [class.flex]=\"option.display\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { option, $index, $last }\"></ng-container>\n </div>\n }\n <div class=\"relative\">\n @if (displayShowMoreToolbar()) {\n <libs_ui-components-buttons-button\n [type]=\"showMoreAction() ? 'button-secondary' : 'button-third'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[1px] !h-[20px] ml-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-move-right rotate-90'\"\n (outClick)=\"handlerChangeShowMoreAction($event)\" />\n }\n <!-- Build toolbar khi click xem thêm-->\n <div\n [class.hidden]=\"!showMoreAction()\"\n class=\"absolute bg-[#ffffff] shadow-[0px_4px_16px_0px_rgba(0,20,51,0.10)] z-[1] flex items-center pl-[8px] pr-[16px] py-[4px] rounded-[8px] top-[31px] right-[0px]\">\n @for (option of toolbarOptionsConfig(); track option) {\n <div\n class=\"items-center\"\n [class.hidden]=\"option.display !== false\"\n [class.flex]=\"option.display === false\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { option, $index, $last }\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #itemTemplate\n let-$index=\"$index\"\n let-$last=\"$last\"\n let-option=\"option\">\n @if (option.type === 'undo') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_undo', zIndex: zIndex() }\"\n class=\"ql-undo\"></button>\n </div>\n }\n @if (option.type === 'redo') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_redo', zIndex: zIndex() }\"\n class=\"ql-redo\"></button>\n </div>\n }\n @if (option.type === 'fontFamily') {\n <div\n class=\"relative w-[132px] h-full rounded-[4px] libs-ui-border-general {{ option.classInclude || 'mx-[8px]' }}\"\n [class.bg-white]=\"!readonly() && !loadingUploadImage()\">\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [labelPopoverFullWidth]=\"true\"\n [listConfig]=\"listConfigFont()\"\n [listHasButtonUnSelectOption]=\"false\"\n [listHiddenInputSearch]=\"true\"\n [listMaxItemShow]=\"8\"\n [zIndex]=\"1250\"\n (outSelectKey)=\"handleSelectFont($event)\">\n @if (fontSelected(); as fontSelected) {\n <div class=\"flex items-center cursor-pointer py-[7px] libs-ui-font-h5r pl-[16px] pr-[40px]\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [ignoreStopPropagationEvent]=\"true\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ labelFontSelectedComputed() }}\n </libs_ui-components-popover>\n <i class=\"libs-ui-icon-move-right rotate-90 absolute right-[12px] text-[#6a7383] text-[16px]\"></i>\n </div>\n }\n </libs_ui-components-dropdown>\n </div>\n }\n @if (option.type === 'header') {\n <div\n class=\"relative w-[138px] h-full rounded-[4px] libs-ui-border-general {{ option.classInclude || 'mx-[8px]' }}\"\n [class.bg-white]=\"!readonly() && !loadingUploadImage()\">\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [labelPopoverFullWidth]=\"true\"\n [listConfig]=\"listConfigHeader()\"\n [listHasButtonUnSelectOption]=\"false\"\n [listHiddenInputSearch]=\"true\"\n [listMaxItemShow]=\"8\"\n [zIndex]=\"1250\"\n (outSelectKey)=\"handleSelectHeader($event)\">\n @if (headerSelected(); as headerSelected) {\n <div class=\"flex items-center cursor-pointer py-[7px] libs-ui-font-h5r pl-[16px] pr-[40px] {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [ignoreStopPropagationEvent]=\"true\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ labelHeaderSelectedComputed() }}\n </libs_ui-components-popover>\n <i class=\"libs-ui-icon-move-right rotate-90 absolute right-[12px] text-[#6a7383] text-[16px]\"></i>\n </div>\n }\n </libs_ui-components-dropdown>\n </div>\n }\n @if (option.type === 'fontSize') {\n <div class=\"ql-picker {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-inputs-valid\n [dataType]=\"'int'\"\n [(item)]=\"size\"\n [fieldNameBind]=\"'value'\"\n [valueUpDownNumber]=\"1\"\n [maxValueNumber]=\"72\"\n [minValueNumber]=\"8\"\n [readonly]=\"readonly() || loadingUploadImage()\"\n [classContainerInput]=\"'w-[72px] h-[32px]'\"\n (outValueChange)=\"handlerValueChange($event)\" />\n </div>\n }\n @if (option.type === 'color') {\n <div class=\"ql-color ql-picker ql-color-picker !flex items-center {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-popover [config]=\"{ content: 'i18n_text_color', zIndex: zIndex() }\">\n <libs_ui-components-buttons-select_color\n [zIndex]=\"zIndex()\"\n [direction]=\"'top'\"\n [externalContent]=\"true\"\n [customOptions]=\"{\n showAlpha: true,\n }\"\n [applyNow]=\"false\"\n (outColorChange)=\"setStyle('color', $event)\">\n <div class=\"libs-ui-icon-editor-color-text libs-ui-buttons-select-color text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]\"></div>\n </libs_ui-components-buttons-select_color>\n </libs_ui-components-popover>\n </div>\n }\n @if (option.type === 'background') {\n <div class=\"ql-background ql-picker ql-color-picker !flex items-center {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-popover [config]=\"{ content: 'i18n_background_color', zIndex: zIndex() }\">\n <libs_ui-components-buttons-select_color\n [zIndex]=\"zIndex()\"\n [direction]=\"'top'\"\n [externalContent]=\"true\"\n [applyNow]=\"false\"\n [customOptions]=\"{\n showAlpha: true,\n }\"\n (outColorChange)=\"setStyle('background', $event)\">\n <div class=\"libs-ui-icon-editor-color-background libs-ui-buttons-select-color text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]\"></div>\n </libs_ui-components-buttons-select_color>\n </libs_ui-components-popover>\n </div>\n }\n @if (option.type === 'bold') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_font_weight_bold', zIndex: zIndex() }\"\n class=\"ql-bold\"></button>\n </div>\n }\n @if (option.type === 'italic') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_font_style_italic', zIndex: zIndex() }\"\n class=\"ql-italic\"></button>\n </div>\n }\n @if (option.type === 'underline') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_text_decoration_underline', zIndex: zIndex() }\"\n class=\"ql-underline\"></button>\n </div>\n }\n @if (option.type === 'strikeThrough') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_text_line_through', zIndex: zIndex() }\"\n class=\"ql-strike\"></button>\n </div>\n }\n @if (option.type === 'adjust') {\n <div class=\"relative !flex items-center ql-align ql-picker ql-icon-picker !w-max {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-popover [config]=\"{ content: 'i18n_adjust', zIndex: zIndex() }\">\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [ignoreStopPropagationEvent]=\"true\"\n [labelPopoverFullWidth]=\"true\"\n [listConfig]=\"listConfigAlign()\"\n [listHiddenInputSearch]=\"true\"\n [popoverCustomConfig]=\"{ ignoreArrow: true, classInclude: '!w-[32px] overflow-hidden !py-[4px]', position: { mode: 'start', distance: 0 }, paddingLeftItem: false }\"\n [listHasButtonUnSelectOption]=\"false\"\n [listMaxItemShow]=\"8\"\n [zIndex]=\"1250\"\n (outSelectKey)=\"handleSelectAlign($event)\">\n @if (alignSelected(); as alignSelected) {\n <div class=\"flex items-center cursor-pointer\">\n <i [class]=\"iconAlignSelectedComputed()\"></i>\n <i class=\"libs-ui-icon-move-right rotate-90 text-[#6a7383] text-[16px] ml-[4px]\"></i>\n </div>\n }\n </libs_ui-components-dropdown>\n </libs_ui-components-popover>\n </div>\n }\n @if (option.type === 'indentIncrease') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_indent_increase', zIndex: zIndex() }\"\n class=\"ql-indent\"\n value=\"+1\"></button>\n </div>\n }\n @if (option.type === 'indentDecrease') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_indent_decrease', zIndex: zIndex() }\"\n class=\"ql-indent\"\n value=\"-1\"></button>\n </div>\n }\n @if (option.type === 'listBulleted') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_list_bulleted', zIndex: zIndex() }\"\n class=\"ql-list ql-bullet\"\n value=\"bullet\"></button>\n </div>\n }\n @if (option.type === 'listNumbered') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_list_numbered', zIndex: zIndex() }\"\n class=\"ql-list ql-ordered\"\n value=\"ordered\"></button>\n </div>\n }\n @if (option.type === 'personalize' && templateToolBarPersonalize(); as templateToolBarPersonalize) {\n <div class=\"flex items-center {{ option.classInclude || 'mx-[8px]' }}\">\n <ng-container *ngTemplateOutlet=\"templateToolBarPersonalize\"></ng-container>\n </div>\n }\n @if (option.type === 'blockquote') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_quote', zIndex: zIndex() }\"\n class=\"ql-blockquote\"></button>\n </div>\n }\n @if (option.type === 'link') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_insert_link', zIndex: zIndex() }\"\n class=\"ql-link\"></button>\n </div>\n }\n @if (option.type === 'unLink') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_unlink', zIndex: zIndex() }\"\n class=\"ql-unLink\"></button>\n </div>\n }\n @if (option.type === 'image') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_image', zIndex: zIndex() }\"\n class=\"ql-image\"></button>\n </div>\n }\n @if (option.type === 'emoji') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <libs_ui-components-emoji\n [zIndex]=\"zIndex()\"\n [isNgContent]=\"true\"\n (outEventEmoji)=\"handlerAddEmoji($event)\">\n <button class=\"ql-emoji\"></button>\n </libs_ui-components-emoji>\n </div>\n }\n @if (option.type === 'line') {\n <div class=\"w-[1px] h-[16px] libs-ui-border-right-general\"></div>\n }\n</ng-template>\n\n<libs_ui-components-popover\n [mode]=\"'click'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{ template: viewLink, whiteTheme: true, ignoreArrow: true, zIndex: zIndex() }\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerPopoverFunctionControl($event)\" />\n\n<ng-template #viewLink>\n <div class=\"flex justify-between items-center px-[16px] py-[8px] rounded-[8px]\">\n <div\n class=\"w-full min-w-0 libs-ui-font-h5r\"\n [type]=\"'text'\"\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: link().url, zIndex: zIndex() + 1 }\">\n {{ link().url }}\n </div>\n <div class=\"flex items-center ml-[16px]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-primary'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-edit-line'\"\n [classInclude]=\"'!p-0'\"\n (outClick)=\"handlerEdit($event)\" />\n <libs_ui-components-buttons-button\n [type]=\"'button-link-custom'\"\n [buttonCustom]=\"{\n configStepColor: {\n text: '#071631',\n text_hover: '#ee2d41',\n text_active: '#ee2d41',\n text_disable: '071631',\n },\n rootColor: '#071631',\n }\"\n [classInclude]=\"'!p-0 ml-[12px]'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-link-broken'\"\n (outClick)=\"handlerUnlink($event)\" />\n </div>\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-inputs-quill.mjs","sources":["../../../../../../libs-ui/components/inputs/quill/src/blots-custom/div.component.ts","../../../../../../libs-ui/components/inputs/quill/src/blots-custom/image.component.ts","../../../../../../libs-ui/components/inputs/quill/src/blots-custom/mention.component.ts","../../../../../../libs-ui/components/inputs/quill/src/indent-attributor/indent-attributor.component.ts","../../../../../../libs-ui/components/inputs/quill/src/link/link.component.ts","../../../../../../libs-ui/components/inputs/quill/src/link/link.component.html","../../../../../../libs-ui/components/inputs/quill/src/upload-image/upload-image.component.ts","../../../../../../libs-ui/components/inputs/quill/src/upload-image/upload-image.component.html","../../../../../../libs-ui/components/inputs/quill/src/utils/quill.define.ts","../../../../../../libs-ui/components/inputs/quill/src/quill.component.ts","../../../../../../libs-ui/components/inputs/quill/src/quill.component.html","../../../../../../libs-ui/components/inputs/quill/src/libs-ui-components-inputs-quill.ts"],"sourcesContent":["import Quill from 'quill';\n\nconst Block = Quill.import('blots/block');\n\nexport class QuillDivBlot extends Block {\n static tagName = 'div';\n}\n","import Quill from 'quill';\n\nconst ImageFormat = Quill.import('formats/image');\n\nexport class CustomImageBlot extends ImageFormat {\n static create(value: string) {\n const node = super.create(value);\n node.classList.add('libs-ui-quill-format-image');\n return node;\n }\n\n formats() {\n return {}; // Tránh Quill tự động thêm thẻ `<span>`\n }\n}\n","import Quill from 'quill';\n\nconst Embed = Quill.import('blots/embed');\n\nexport class QuillMentionBlot extends Embed {\n static blotName = 'mention';\n static tagName = 'span';\n static className = 'libs-ui-quill-mention';\n static create(data: { id: string; feId: string; value: string }) {\n const node = super.create();\n node.innerText += data.value;\n node.setAttribute('id', data.id);\n node.setAttribute('feId', data.feId);\n node.setAttribute('value', data.value);\n return node;\n }\n\n static value(domNode: HTMLElement) {\n return {\n id: domNode.getAttribute('id'),\n feId: domNode.getAttribute('feId'),\n value: domNode.getAttribute('value'),\n };\n }\n\n attach() {\n super.attach();\n if (!this.mounted) {\n this.mounted = true;\n this.clickHandler = this.getClickHandler;\n this.domNode.addEventListener('click', this.clickHandler, false);\n }\n }\n\n getClickHandler(event: Event) {\n event.stopPropagation();\n }\n}\n","import Quill from 'quill';\n\nconst parchment = Quill.import('parchment');\nconst pixelLevels = [1, 2, 3, 4, 5, 6, 7, 8];\nconst tabMultiplier = 3;\n\nclass IndentAttributor extends (parchment.Attributor.Style as {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n new (formatName: string, styleProperty: string, attributorOptions: unknown): any;\n}) {\n constructor(formatName: string, styleProperty: string, attributorOptions: unknown) {\n super(formatName, styleProperty, attributorOptions);\n }\n\n public add(node: HTMLElement, value: string): boolean {\n return super.add(node, `${+value * tabMultiplier}em`);\n }\n\n public value(node: HTMLElement): number | undefined {\n return parseFloat(super.value(node)) / tabMultiplier || undefined; // Don't return NaN\n }\n}\n\nexport const indentStyle = new IndentAttributor('indent', 'margin-left', {\n scope: parchment.Scope.BLOCK,\n whitelist: pixelLevels.map((value) => `${value * tabMultiplier}em`),\n});\n","import { ChangeDetectionStrategy, Component, input, OnInit, output, signal } from '@angular/core';\nimport { IInputValidFunctionControlEvent, LibsUiComponentsInputsValidComponent } from '@libs-ui/components-inputs-valid';\nimport { LibsUiComponentsModalComponent, TYPE_MODAL_EVENT } from '@libs-ui/components-modal';\nimport { patternUrl } from '@libs-ui/utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-quill-link',\n templateUrl: './link.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiComponentsModalComponent, LibsUiComponentsInputsValidComponent],\n})\nexport class LibsUiComponentsInputsQuillLinkComponent implements OnInit {\n protected dataLink = signal<{ title: string; link: string }>({ title: '', link: '' });\n protected patternLink = signal<RegExp>(patternUrl());\n\n private inputValidFunctionControl = signal<Array<IInputValidFunctionControlEvent>>([]);\n\n readonly zIndex = input<number>(1200);\n readonly title = input<string>();\n readonly link = input<string>();\n readonly ignoreCommunicateMicroEvent = input<boolean>();\n\n readonly outClose = output<void>();\n readonly outSaveLink = output<{ title: string; link: string }>();\n\n ngOnInit() {\n const title = this.title();\n const link = this.link();\n if (title || link) {\n this.dataLink.update((item) => ({ ...item, title: title || '', link: link || '' }));\n }\n }\n\n protected async handlerFunctionsControl(event: IInputValidFunctionControlEvent) {\n this.inputValidFunctionControl.update((items) => [...items, event]);\n }\n\n private async validate() {\n let valid = true;\n for (const control of this.inputValidFunctionControl()) {\n if (!(await control.checkIsValid())) {\n valid = false;\n }\n }\n return valid;\n }\n\n protected async handlerEvent(event: TYPE_MODAL_EVENT) {\n if (event !== 'agree') {\n this.outClose.emit();\n return;\n }\n if (await this.validate()) {\n this.outSaveLink.emit(this.dataLink());\n this.outClose.emit();\n }\n }\n}\n","<libs_ui-components-modal\n [title]=\"'i18n_insert_link'\"\n [mode]=\"'center'\"\n [height]=\"'auto'\"\n [width]=\"'598px'\"\n [ignoreCommunicateMicroEvent]=\"ignoreCommunicateMicroEvent()\"\n [headerConfig]=\"{ ignoreHeaderTheme: true }\"\n [zIndex]=\"zIndex()\"\n (outEvent)=\"handlerEvent($event)\">\n <div class=\"libs-ui-modal-body-custom\">\n <libs_ui-components-inputs-valid\n [labelConfig]=\"{ labelLeft: 'i18n_content', required: true }\"\n [(item)]=\"dataLink\"\n [fieldNameBind]=\"'title'\"\n [placeholder]=\"'i18n_import_content'\"\n [validRequired]=\"{ isRequired: true }\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\" />\n <div class=\"mt-[16px]\">\n <libs_ui-components-inputs-valid\n [labelConfig]=\"{ labelLeft: 'Link', required: true }\"\n [(item)]=\"dataLink\"\n [fieldNameBind]=\"'link'\"\n [placeholder]=\"'https:/…'\"\n [validRequired]=\"{ isRequired: true }\"\n [validPattern]=\"[{ pattern: patternLink(), valuePatternShowError: false }]\"\n [keySelectedUnitLeft]=\"'1'\"\n [unitsLeft]=\"[{ id: '1', label: 'URL' }]\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\" />\n </div>\n </div>\n</libs_ui-components-modal>\n","import { ChangeDetectionStrategy, Component, input, output, signal } from '@angular/core';\nimport { IButton } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsModalComponent, TYPE_MODAL_EVENT } from '@libs-ui/components-modal';\nimport { IQuillUploadImageConfig } from '../interfaces/quill.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-quill-upload_image',\n templateUrl: './upload-image.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiComponentsModalComponent],\n})\nexport class LibsUiComponentsInputsQuillUploadImageComponent {\n protected buttonFooter = signal<Array<IButton>>([\n {\n type: 'button-third',\n label: 'i18n_cancel',\n action: async () => this.outClose.emit(),\n },\n {\n label: 'i18n_save',\n action: () => this.handlerSaveImage(),\n },\n ]);\n protected disable = signal<boolean>(false);\n readonly ignoreCommunicateMicroEvent = input<boolean>();\n\n // private mediaFile =signal<IMediaFile | undefined>(undefined);\n // private mediaUploadFunctionControl =signal<IMediaUploadBaseFunctionControlEvent | undefined>(undefined);\n\n readonly uploadImageConfig = input.required<IQuillUploadImageConfig>();\n\n readonly outClose = output<string | void>();\n\n // protected handlerFunctionsControl(event: IMediaUploadBaseFunctionControlEvent) {\n // this.mediaUploadFunctionControl.set(event);\n // }\n\n // protected handlerChangeFile(event: IChangeFile) {\n // this.mediaFile.set(event.files[0]);\n // }\n\n private async handlerSaveImage() {\n // if (!await this.mediaUploadFunctionControl()?.checkIsValid()) {\n // return;\n // }\n // if (this.mediaFile?.origin_url) {\n // this.moClose.emit(this.mediaFile.origin_url);\n // return;\n // }\n // const body: IOptionsUploadMedia = {\n // do_not_delete: true,\n // file: this.mediaFile?.file,\n // option: 'thumb',\n // size: [{ 'width': '200', 'height': '200' }]\n // };\n // this.disable = true;\n // try {\n // const params = new HttpParamsRequest({ fromObject: { pem: BUILD_PEM_OBJECT({ isCheck: 0, action: DefineConstants.PERMISSION_ACTION_VIEW, pathCheck: '/other' }) } });\n // const res = await this.mediaService.uploadImage(params, body);\n // this.moClose.emit(res.data?.url);\n // } catch (error) {\n // console.log(error);\n // this.pushMessageService.showCompTypeText('i18n_notification_manipulation_not_success', undefined, undefined, { timeRemove: 2000, type: 'error' });\n // this.moClose.emit();\n // } finally {\n // this.disable = false;\n // }\n }\n\n protected handlerEventModal(event: TYPE_MODAL_EVENT) {\n if (event === 'close') {\n this.outClose.emit();\n }\n }\n}\n","<libs_ui-components-modal\n [title]=\"'i18n_upload_image'\"\n [mode]=\"'center'\"\n [width]=\"'598px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true }\"\n [maxHeight]=\"'calc(100% - 100px)'\"\n [height]=\"'auto'\"\n [zIndex]=\"uploadImageConfig().zIndex || 1203\"\n [disable]=\"disable()\"\n [ignoreCommunicateMicroEvent]=\"ignoreCommunicateMicroEvent()\"\n [buttonsFooter]=\"buttonFooter()\"\n (outEvent)=\"handlerEventModal($event)\">\n <div class=\"libs-ui-modal-body-custom\">\n <!-- <libs-uicomponents-media-upload [zIndex]=\"zIndex+1\"\n [labelConfig]=\"labelConfig\"\n [multiple]=\"false\"\n [fileType]=\"'image'\"\n [doNotDelete]=\"true\"\n [maxImageSize]=\"maxImageSize || 1048576\"\n [limitFile]=\"10\"\n [validRequired]=\"{isRequired: true}\"\n (moChangeFile)=\"handlerChangeFile($event)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event)\">\n </libs-uicomponents-media-upload> -->\n </div>\n</libs_ui-components-modal>\n","import { signal } from '@angular/core';\nimport { IListConfigItem } from '@libs-ui/components-list';\nimport { IHttpRequestConfig, returnListObject } from '@libs-ui/services-http-request';\nimport { IQuillLink, IQuillToolbarConfig, IQuillUploadImageConfig, TYPE_MODE_BAR_CONFIG_OPTION } from '../interfaces/quill.interface';\nimport { convertFileToBase64_ObjectUrl } from '@libs-ui/utils';\n\nexport const listDataAlign = () => {\n return [\n { key: '', icon: 'libs-ui-icon-align-left text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]' },\n { key: 'right', icon: 'libs-ui-icon-align-right text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]' },\n { key: 'center', icon: 'libs-ui-icon-align-center text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]' },\n { key: 'justify', icon: 'libs-ui-icon-align-justify text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]' },\n ];\n};\n\nexport const listFont = () => {\n return [\n { key: '', label: 'Sans Serif' },\n { key: 'serif', label: 'Serif' },\n { key: 'monospace', label: 'Monospace' },\n ];\n};\n\nexport const listHeader = () => {\n return [\n { key: '', label: 'Normal' },\n { key: '1', label: 'Heading 1' },\n { key: '2', label: 'Heading 2' },\n { key: '3', label: 'Heading 3' },\n { key: '4', label: 'Heading 4' },\n { key: '5', label: 'Heading 5' },\n { key: '6', label: 'Heading 6' },\n ];\n};\n\nexport const listConfigAlign = (): IListConfigItem => {\n return {\n type: 'text',\n autoSelectFirstItem: true,\n httpRequestData: signal<IHttpRequestConfig>({\n objectInstance: returnListObject(listDataAlign()),\n functionName: 'list',\n argumentsValue: [],\n }),\n configTemplateText: signal({\n fieldKey: 'key',\n getClassItem: () => '!px-[8px] !py-[4px]',\n getValue: (item) => `<i class='flex ${item.icon}'></i>`,\n ignoreIconSelected: true,\n }),\n };\n};\n\nexport const listConfigFont = (): IListConfigItem => {\n return {\n type: 'text',\n autoSelectFirstItem: true,\n httpRequestData: signal<IHttpRequestConfig>({\n objectInstance: returnListObject(listFont()),\n functionName: 'list',\n argumentsValue: [],\n }),\n configTemplateText: signal({\n fieldKey: 'key',\n getValue: (item) => item.label,\n ignoreIconSelected: true,\n }),\n };\n};\n\nexport const listConfigHeader = (): IListConfigItem => {\n return {\n type: 'text',\n autoSelectFirstItem: true,\n httpRequestData: signal<IHttpRequestConfig>({\n objectInstance: returnListObject(listHeader()),\n functionName: 'list',\n argumentsValue: [],\n }),\n configTemplateText: signal({\n fieldKey: 'key',\n getValue: (item) => item.label,\n ignoreIconSelected: true,\n }),\n };\n};\n\nexport const toolBarOptions = (mode: TYPE_MODE_BAR_CONFIG_OPTION, hasIconImage: boolean, hasIconPersonalize: boolean): Array<IQuillToolbarConfig> => {\n return (\n [\n {\n type: 'undo',\n classInclude: 'mr-[8px]',\n mode: ['default', 'basic'],\n width: 24,\n },\n {\n type: 'redo',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'line',\n mode: ['default', 'basic'],\n width: 1,\n },\n {\n type: 'header',\n classInclude: 'ml-[8px]',\n mode: [],\n width: 146,\n },\n {\n type: 'fontFamily',\n classInclude: 'ml-[8px]',\n mode: ['default'],\n width: 136,\n },\n {\n type: 'fontSize',\n classInclude: 'ml-[8px] mr-[8px]',\n mode: ['default'],\n width: 82,\n },\n {\n type: 'line',\n mode: ['default'],\n width: 1,\n },\n {\n type: 'color',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'background',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'line',\n mode: ['default', 'basic'],\n width: 1,\n },\n {\n type: 'bold',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'italic',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'underline',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'strikeThrough',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'line',\n mode: ['default', 'basic'],\n width: 1,\n },\n {\n type: 'adjust',\n mode: ['default'],\n width: 52,\n },\n {\n type: 'line',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'indentIncrease',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'indentDecrease',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'listBulleted',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'listNumbered',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'line',\n mode: ['default'],\n width: 1,\n },\n {\n type: 'personalize',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'blockquote',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'link',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'unLink',\n mode: ['default', 'basic'],\n width: 32,\n },\n {\n type: 'image',\n mode: ['default'],\n width: 32,\n },\n {\n type: 'emoji',\n classInclude: 'ml-[8px]',\n mode: ['default'],\n width: 24,\n },\n ] as Array<IQuillToolbarConfig>\n ).filter((item) => {\n if (!item.mode?.includes(mode)) {\n return false;\n }\n if (item.type === 'image') {\n return hasIconImage;\n }\n if (item.type === 'personalize') {\n return hasIconPersonalize;\n }\n\n return true;\n });\n};\nexport const iconList = (): Array<{ key: string; icon: string }> => {\n return [\n {\n key: 'bold',\n icon: 'libs-ui-icon-editor-bold',\n },\n {\n key: 'italic',\n icon: 'libs-ui-icon-editor-italic',\n },\n {\n key: 'underline',\n icon: 'libs-ui-icon-editor-underlined',\n },\n {\n key: 'image',\n icon: 'libs-ui-icon-image-solid',\n },\n {\n key: 'link',\n icon: 'libs-ui-icon-link',\n },\n {\n key: 'undo',\n icon: 'libs-ui-icon-undo',\n },\n {\n key: 'redo',\n icon: 'libs-ui-icon-undo scale-x-[-1]',\n },\n {\n key: 'strike',\n icon: 'libs-ui-icon-editor-strike-through',\n },\n {\n key: 'blockquote',\n icon: 'libs-ui-icon-quote',\n },\n {\n key: 'ordered',\n icon: 'libs-ui-icon-list-numbered',\n },\n {\n key: 'bullet',\n icon: 'libs-ui-icon-list-bulleted',\n },\n {\n key: 'background',\n icon: 'libs-ui-icon-editor-color-background',\n },\n {\n key: 'color',\n icon: 'libs-ui-icon-editor-color-text',\n },\n {\n key: 'indent.-1',\n icon: 'libs-ui-icon-indent-decrease',\n },\n {\n key: 'indent.+1',\n icon: 'libs-ui-icon-indent-increase',\n },\n {\n key: 'align.',\n icon: 'align-quill libs-ui-icon-align-left',\n },\n {\n key: 'align.center',\n icon: 'align-quill libs-ui-icon-align-center',\n },\n {\n key: 'align.right',\n icon: 'align-quill libs-ui-icon-align-right',\n },\n {\n key: 'align.justify',\n icon: 'align-quill libs-ui-icon-align-justify',\n },\n {\n key: 'unLink',\n icon: 'libs-ui-icon-link-broken',\n },\n {\n key: 'emoji',\n icon: 'libs-ui-icon-face-smile',\n },\n ];\n};\n\nexport const uploadImageConfigDefault = (): IQuillUploadImageConfig => {\n return {\n modeCustom: false,\n zIndex: 1202,\n showIcon: true,\n maxImageSize: 5 * 1024 * 1024,\n onlyAcceptImageHttpsLink: false,\n functionUploadImage: async (files: Array<File>) => {\n const data = [];\n for (const file of files) {\n data.push(await convertFileToBase64_ObjectUrl(file));\n }\n return data;\n },\n };\n};\n\nexport const linkDefault = (): IQuillLink => {\n return {\n title: '',\n url: '',\n range: {\n index: 0,\n length: 0,\n },\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n computed,\n effect,\n ElementRef,\n inject,\n input,\n model,\n OnDestroy,\n OnInit,\n output,\n signal,\n TemplateRef,\n untracked,\n viewChild,\n WritableSignal,\n} from '@angular/core';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsButtonsSelectColorComponent } from '@libs-ui/components-buttons-select-color';\nimport { IEmitSelectKey, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { LibsUiComponentsEmojiComponent } from '@libs-ui/components-inputs-emoji';\nimport { IMentionConfig, IMentionInsert, LibsUiComponentsInputsMentionDirective } from '@libs-ui/components-inputs-mention';\nimport { IValidLength, IValidRequired, LibsUiComponentsInputsValidComponent } from '@libs-ui/components-inputs-valid';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { IListConfigItem } from '@libs-ui/components-list';\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from '@libs-ui/components-popover';\nimport { LibsUiComponentsScrollOverlayDirective } from '@libs-ui/components-scroll-overlay';\nimport { LibsUiComponentsSkeletonComponent } from '@libs-ui/components-skeleton';\nimport { LibsUiComponentsSpinnerComponent } from '@libs-ui/components-spinner';\nimport { TYPE_OBJECT, TYPE_TEMPLATE_REF } from '@libs-ui/interfaces-types';\nimport { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';\nimport { LibsUiNotificationService } from '@libs-ui/services-notification';\nimport { ERROR_MESSAGE_EMPTY_VALID, ERROR_MESSAGE_MAX_LENGTH, ERROR_MESSAGE_MIN_LENGTH, get, getLabelBySizeFile, isNil, patternUrl, set, xssFilter } from '@libs-ui/utils';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport Quill, { RangeStatic, Sources, StringMap } from 'quill';\nimport { fromEvent, lastValueFrom, Subject, takeUntil, timer } from 'rxjs';\nimport { QuillDivBlot } from './blots-custom/div.component';\nimport { CustomImageBlot } from './blots-custom/image.component';\nimport { QuillMentionBlot } from './blots-custom/mention.component';\nimport { indentStyle } from './indent-attributor/indent-attributor.component';\nimport { IQuillBlotRegister, IQuillFunctionControlEvent, IQuillLink, IQuillSelectionChange, IQuillTextChange, IQuillToolbarConfig, IQuillUploadImageConfig, TYPE_MODE_BAR_CONFIG_OPTION } from './interfaces/quill.interface';\nimport { LibsUiComponentsInputsQuillLinkComponent } from './link/link.component';\nimport { LibsUiComponentsInputsQuillUploadImageComponent } from './upload-image/upload-image.component';\nimport { iconList, linkDefault, listConfigAlign, listConfigFont, listConfigHeader, listFont, toolBarOptions, uploadImageConfigDefault } from './utils/quill.define';\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-quill',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: './quill.component.html',\n styleUrl: './quill.component.scss',\n imports: [\n TranslateModule,\n NgTemplateOutlet,\n LibsUiComponentsInputsMentionDirective,\n LibsUiComponentsScrollOverlayDirective,\n LibsUiComponentsLabelComponent,\n LibsUiComponentsDropdownComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsButtonsSelectColorComponent,\n LibsUiComponentsInputsValidComponent,\n LibsUiComponentsEmojiComponent,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsSpinnerComponent,\n LibsUiComponentsSkeletonComponent,\n ],\n})\nexport class LibsUiComponentsInputsQuillComponent implements OnInit, AfterViewInit, OnDestroy {\n protected qlEditorElement = signal<HTMLElement | undefined>(undefined);\n private timeoutScrollToSelectionWithElementScrollHeightAuto = signal<number | undefined>(undefined);\n protected loadingUploadImage = signal<boolean>(false);\n protected readonly timeDelayInit = signal<number>(20);\n protected messageError = signal<string>('');\n protected display = signal<boolean>(false);\n protected listConfigAlign = signal<IListConfigItem>(listConfigAlign());\n protected alignSelected = signal<IEmitSelectKey | undefined>(undefined);\n protected iconAlignSelectedComputed = computed(() => get(this.alignSelected(), 'item.icon'));\n protected listConfigFont = signal<IListConfigItem>(listConfigFont());\n protected fontSelected = signal<IEmitSelectKey | undefined>(undefined);\n protected labelFontSelectedComputed = computed(() => get(this.fontSelected(), 'item.label') || 'Sans Serif');\n protected listConfigHeader = signal<IListConfigItem>(listConfigHeader());\n protected headerSelected = signal<IEmitSelectKey | undefined>(undefined);\n protected labelHeaderSelectedComputed = computed(() => get(this.headerSelected(), 'item.label') || 'Normal');\n protected size = signal<{ value: number }>({ value: 14 });\n protected showMoreAction = signal<boolean>(false);\n protected link = signal<IQuillLink>(linkDefault());\n protected toolbarOptionsConfig: WritableSignal<Array<IQuillToolbarConfig>> = signal([]);\n\n protected displayShowMoreToolbar = computed(() => this.toolbarOptionsConfig().some((item) => item.display === false));\n protected displaySkeleton = computed(() => this.toolbarOptionsConfig().every((item) => item.display === undefined));\n\n private timeCalculationToolBar = signal<number | undefined>(undefined);\n private popoverFunctionControl = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n private quill = signal<Quill | undefined>(undefined);\n private handlers = signal<Record<string, (...params: Array<unknown>) => void>>({ undo: this.handleUndo.bind(this), redo: this.handleRedo.bind(this) });\n private showMention = signal<boolean>(false);\n private addEditLinkComponentRef = signal<ComponentRef<LibsUiComponentsInputsQuillLinkComponent> | undefined>(undefined);\n private uploadImageComponentRef = signal<ComponentRef<LibsUiComponentsInputsQuillUploadImageComponent> | undefined>(undefined);\n private onDestroy = new Subject<void>();\n private dynamicComponentService = inject(LibsUiDynamicComponentService);\n private translate = inject(TranslateService);\n\n readonly isShowToolBar = input<boolean, boolean | undefined>(true, { transform: (val) => val ?? true });\n readonly isToolbarPositionFixed = input<boolean, boolean | undefined>(false, { transform: (val) => val ?? false });\n readonly classIncludeToolbar = input<string>('');\n readonly stylesIncludeToolbar = input<TYPE_OBJECT>();\n readonly toolbarConfig = input<{\n type: TYPE_MODE_BAR_CONFIG_OPTION;\n config?: Array<IQuillToolbarConfig>;\n }>();\n readonly placeholder = input<string, string | undefined>('i18n_import_content', { transform: (value) => value || 'i18n_import_content' });\n readonly label = input<ILabel | undefined>();\n readonly item = model<TYPE_OBJECT>();\n /**đặt cờ này bằng false để tối ưu hiệu năng, và chỉ lấy dữ liệu ra khi có yêu cầu lấy dữ liệu để gửi lên server , gọi refreshItemValue để cập nhật giá tri thủ công*/\n readonly autoUpdateValueWhenTextChange = input<boolean, boolean | undefined>(true, { transform: (value) => value ?? true });\n readonly fieldNameBind = input<string>('value');\n readonly readonly = input<boolean>();\n readonly showErrorLabel = input<boolean>(true);\n readonly showErrorBorder = input<boolean>(false);\n readonly onlyShowErrorBorderInContent = input<boolean>(false);\n readonly classIncludeTemplate = input<string>();\n readonly classInclude = input<string>();\n readonly handlersExpand = input<Array<{ title: string; action: () => void }>>();\n readonly validRequired = input<IValidRequired>();\n readonly validMinLength = input<IValidLength>();\n readonly validMaxLength = input<IValidLength>();\n readonly zIndex = input<number, number | undefined>(1250, { transform: (value) => value || 1250 });\n readonly dataConfigMention = input<IMentionConfig>();\n readonly blotsRegister = input<Array<IQuillBlotRegister>>();\n readonly autoFocus = input<boolean>();\n readonly focusBottom = input<boolean>();\n readonly blockUndoRedoKeyboard = input<boolean>();\n readonly templateToolBarPersonalize = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly template = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly uploadImageConfig = input<IQuillUploadImageConfig, IQuillUploadImageConfig | undefined>(uploadImageConfigDefault(), { transform: (value) => value || uploadImageConfigDefault() });\n readonly heightAuto = input<boolean>();\n readonly elementScrollHeightAuto = input<HTMLElement>();\n readonly ignoreShowPopupEditLink = input<boolean>();\n readonly ignoreCommunicateMicroEventPopup = input<boolean>();\n readonly outShowPopupEditLink = output<{\n dataLink: IQuillLink;\n callback: (linkEdit: { title: string; link: string }) => Promise<void>;\n }>();\n readonly outMessageError = output<string>();\n readonly outBlur = output<void>();\n readonly outFocus = output<void>();\n readonly outChange = output<string>();\n readonly outFunctionsControl = output<IQuillFunctionControlEvent>();\n readonly outSelectionChange = output<IQuillSelectionChange>();\n readonly outTextChange = output<IQuillTextChange>();\n readonly outContextMenu = output<MouseEvent>();\n\n readonly wrapperEditorEl = viewChild.required<ElementRef>('wrapperEditor');\n readonly editorEl = viewChild.required<ElementRef>('editor');\n readonly quillOptionEl = viewChild.required<ElementRef>('quillOption');\n readonly quillEditorEl = viewChild.required<ElementRef>('quillEditor');\n readonly toolbarItemsEl = viewChild.required<ElementRef>('toolbarItems');\n\n private notificationService = inject(LibsUiNotificationService);\n private cdr = inject(ChangeDetectorRef);\n\n constructor() {\n effect(() => {\n setTimeout(() => {\n const classes = `${this.classInclude() || ''} h-full w-full`\n .split(' ')\n .map((item) => item.trim())\n .filter((item) => item);\n this.getQlEditorElement()?.classList.add(...classes);\n }, this.timeDelayInit() + 10);\n });\n\n effect(() => {\n const type = this.toolbarConfig()?.type || 'default';\n const hasIconImage = this.uploadImageConfig().showIcon ?? false;\n const hasIconPersonalize = !!this.templateToolBarPersonalize();\n untracked(() => {\n this.toolbarOptionsConfig.set(this.toolbarConfig()?.config || toolBarOptions(type, hasIconImage, hasIconPersonalize));\n this.cdr.detectChanges();\n this.calculatorToolbar();\n });\n });\n }\n\n ngOnInit() {\n this.outFunctionsControl.emit(this.FunctionsControl);\n }\n\n public get FunctionsControl(): IQuillFunctionControlEvent {\n return {\n checkIsValid: this.validate.bind(this),\n refreshItemValue: this.updateValueByRootQuillHtml.bind(this),\n setContent: this.setContent.bind(this),\n insertText: this.insertText.bind(this),\n insertLink: this.insertLink.bind(this),\n insertImage: this.insertImage.bind(this),\n setFontSize: this.setFontSize.bind(this),\n setColor: async (color: string) => this.setStyle('color', color),\n setBackground: async (color: string) => this.setStyle('background', color),\n quill: () => this.quill() as Quill,\n scrollToSelectionWithElementScrollHeightAuto: this.scrollToSelectionWithElementScrollHeightAuto.bind(this),\n insertEmbed: async (range: { index: number; indexSelect: number; length?: number }, type: string, data: unknown, sources?: Sources) => {\n this.quill()?.insertEmbed(range.index, type, data, sources || Quill.sources.USER);\n this.quill()?.setSelection(range.indexSelect, range.length || 0, Quill.sources.USER);\n this.scrollToSelectionWithElementScrollHeightAuto(range.indexSelect);\n return;\n },\n reCalculatorToolbar: this.calculatorToolbar.bind(this),\n };\n }\n\n async ngAfterViewInit() {\n this.setHandlerFunction();\n await lastValueFrom(timer(this.timeDelayInit()));\n this.initQuill();\n\n this.setContent(get(this.item(), this.fieldNameBind(), ''));\n this.handlerTextChange();\n this.handlerSelectionChange();\n this.handlerPaste();\n // gọi hàm này để quill đánh dấu là đã focus trong khi quill chưa khởi tạo xong để không bị scroll xuống dưới.sau khi quill khởi tạo xong và check nếu đang focus đang được bật thì nó không gọi lại hàm focus nữa\n this.quill()?.focus();\n if (this.autoFocus()) {\n this.display.set(true);\n this.quill()?.blur();\n }\n fromEvent(window, 'resize').pipe(takeUntil(this.onDestroy)).subscribe(this.calculatorToolbar.bind(this));\n await lastValueFrom(timer(400));\n this.display.set(true);\n const cursorSpan = this.quill()?.root.querySelector('.ql-cursor');\n if (cursorSpan) {\n cursorSpan.remove();\n }\n }\n\n private initQuill() {\n const size = Quill.import('attributors/style/size');\n const alignStyle = Quill.import('attributors/style/align');\n const icons = Quill.import('ui/icons');\n const italic = Quill.import('formats/italic');\n const bold = Quill.import('formats/bold');\n size.whitelist = [\n '8px',\n '9px',\n '10px',\n '11px',\n '12px',\n '13px',\n '14px',\n '15px',\n '16px',\n '17px',\n '18px',\n '19px',\n '20px',\n '21px',\n '22px',\n '23px',\n '24px',\n '25px',\n '26px',\n '27px',\n '28px',\n '29px',\n '30px',\n '31px',\n '32px',\n '33px',\n '34px',\n '35px',\n '36px',\n '37px',\n '38px',\n '39px',\n '40px',\n '41px',\n '42px',\n '43px',\n '44px',\n '45px',\n '46px',\n '47px',\n '48px',\n '49px',\n '50px',\n '51px',\n '52px',\n '53px',\n '54px',\n '55px',\n '56px',\n '57px',\n '58px',\n '59px',\n '60px',\n '61px',\n '62px',\n '63px',\n '64px',\n '65px',\n '66px',\n '67px',\n '68px',\n '69px',\n '70px',\n '71px',\n '72px',\n ];\n\n italic.tagName = 'i';\n bold.tagName = 'b';\n Quill.register(bold, true);\n Quill.register(italic, true);\n Quill.register(size, true);\n Quill.register(CustomImageBlot, true);\n Quill.register(QuillDivBlot, true);\n Quill.register(alignStyle, true);\n Quill.register(QuillMentionBlot, true);\n this.blotsRegister()?.forEach((item) => {\n Quill.register(item.component, true);\n });\n Quill.register({ 'formats/indent': indentStyle }, true);\n fromEvent<MouseEvent>(this.quillEditorEl()?.nativeElement, 'contextmenu')\n .pipe(takeUntil(this.onDestroy))\n .subscribe((e) => this.outContextMenu.emit(e));\n iconList().forEach((element) => set(icons, element.key, `<span class=\"${element.icon} hover:text-[var(--libs-ui-color-light-1)] text-[16px] text-[#6a7383]\"></span>`));\n this.quill.set(\n new Quill(this.quillEditorEl()?.nativeElement, {\n modules: {\n toolbar: {\n container: this.quillOptionEl()?.nativeElement,\n handlers: this.handlers(),\n },\n clipboard: {\n matchVisual: false,\n },\n history: {\n delay: 1000,\n maxStack: 100,\n userOnly: false,\n },\n keyboard: {\n bindings: {\n enter: {\n key: 13,\n handler: () => (this.showMention() ? false : true),\n },\n },\n },\n },\n readOnly: this.readonly(),\n placeholder: this.translate.instant(this.placeholder()),\n theme: 'snow',\n bounds: this.heightAuto() ? this.wrapperEditorEl()?.nativeElement : this.quillEditorEl()?.nativeElement,\n scrollingContainer: this.heightAuto() ? this.wrapperEditorEl()?.nativeElement : null,\n })\n );\n\n this.quill()?.keyboard.addBinding({ key: 'Backspace' }, this.noPreventEmbedDeletion.bind(this));\n this.quill()?.keyboard.addBinding({ key: 'Delete' }, this.noPreventEmbedDeletion.bind(this));\n this.setupUndoRedoBlocking();\n }\n\n private setupUndoRedoBlocking(): void {\n const editorRoot = this.quill()?.root;\n if (editorRoot && this.blockUndoRedoKeyboard()) {\n const keydownHandler = (e: KeyboardEvent) => {\n const isUndo = (e.key === 'z' || e.key === 'Z') && (e.ctrlKey || e.metaKey) && !e.shiftKey;\n const isRedo = ((e.key === 'z' || e.key === 'Z') && (e.ctrlKey || e.metaKey) && e.shiftKey) || ((e.key === 'y' || e.key === 'Y') && e.ctrlKey);\n\n if (isUndo || isRedo) {\n e.preventDefault();\n e.stopPropagation();\n console.log(`Blocking ${isUndo ? 'undo' : 'redo'} keyboard shortcut`);\n }\n };\n\n editorRoot.addEventListener('keydown', keydownHandler, true);\n\n this.onDestroy.subscribe(() => {\n editorRoot.removeEventListener('keydown', keydownHandler, true);\n });\n }\n }\n\n private noPreventEmbedDeletion(range: RangeStatic): boolean {\n if (!this.quill()) return false;\n const delta = this.quill()?.getContents(range.index, 1);\n\n if (delta?.ops.some((option) => this.blotsRegister()?.find((item) => get(option.insert, item.component['blotName']) && item.ignoreDelete))) {\n return false; // Ngăn không cho Quill xử lý xóa\n }\n\n return true;\n }\n\n private setHandlerFunction() {\n this.handlers.update((item) => ({\n ...item,\n image: this.handlerShowUploadImage.bind(this),\n emoji: () => {\n return;\n },\n }));\n let link = false;\n const handlersExpand = this.handlersExpand();\n if (handlersExpand && handlersExpand.length) {\n handlersExpand.forEach((element) => {\n if (element.title && element.action) {\n if (element.title === 'link') {\n link = true;\n }\n this.handlers.update((item) => ({ ...item, [element.title]: element.action }));\n }\n });\n }\n if (!link) {\n this.handlers.update((item) => ({ ...item, link: this.handleShowUploadLink.bind(this), unLink: this.handlerUnInsertLink.bind(this) }));\n }\n }\n\n private adjustIndexForImages(index: number) {\n const content = this.quill()?.root;\n let imageCount = 0;\n let adjustedIndex = 0;\n const adjustTextIndex = (node: Node) => {\n if (adjustedIndex > index) {\n return;\n }\n if (node.nodeType === Node.TEXT_NODE) {\n adjustedIndex += node.textContent?.length || 0;\n return;\n }\n if (node.nodeType === Node.ELEMENT_NODE && node.nodeName === 'IMG') {\n if (adjustedIndex <= index) {\n imageCount++;\n }\n return;\n }\n if (node.nodeType === Node.ELEMENT_NODE) {\n Array.from(node.childNodes).forEach(adjustTextIndex);\n }\n };\n adjustTextIndex(content as Node);\n return imageCount;\n }\n\n private handlerSelectionChange() {\n this.quill()?.on('selection-change', (range: RangeStatic, oldRange: RangeStatic, source: Sources) => {\n if (this.readonly()) {\n return;\n }\n if (range === null && oldRange !== null) {\n this.outBlur.emit();\n return;\n }\n if (range !== null && oldRange === null) {\n this.outFocus.emit();\n return;\n }\n const format = this.quill()?.getFormat();\n if (format) {\n this.getFont(format);\n this.getFontSize(format);\n }\n this.outSelectionChange.emit({\n quill: this.quill() as Quill,\n range,\n oldRange,\n source,\n });\n if (range.length === 0 && format?.link && source === 'user') {\n const selection = document.getSelection();\n const anchorNode = selection?.anchorNode;\n let linkNode = anchorNode as HTMLAnchorElement;\n while (linkNode && linkNode.tagName !== 'A') {\n linkNode = linkNode.parentNode as HTMLAnchorElement;\n }\n if (linkNode && linkNode.tagName === 'A') {\n const linkText = linkNode.innerText;\n const linksIndices: Array<number> = [];\n let indexReturn: number | undefined = -1;\n while (!isNil(indexReturn) && indexReturn < range.index) {\n const textContent = this.quill()?.getText();\n const linkIndex = textContent?.indexOf(linkText, linksIndices.length > 0 ? linksIndices[linksIndices.length - 1] + linkText.length : 0);\n if (!isNil(linkIndex)) {\n if (linkIndex !== -1) {\n linksIndices.push(linkIndex);\n indexReturn = linkIndex + linkText.length;\n }\n if (linkIndex === -1) {\n indexReturn = undefined;\n }\n }\n }\n if (linksIndices && linksIndices.length) {\n const rangeIndex = linksIndices[linksIndices.length - 1];\n const countImage = this.adjustIndexForImages(rangeIndex);\n setTimeout(() => {\n this.link.set({\n title: linkText,\n url: linkNode.href,\n range: {\n index: rangeIndex + countImage,\n length: linkText.length,\n },\n });\n this.popoverFunctionControl()?.showPopover(linkNode);\n }, 250);\n }\n }\n }\n });\n }\n\n private handlerPaste() {\n set<any>(this.quill, 'root.onpaste', async (event: ClipboardEvent) => {\n if (!event || !event.clipboardData) {\n return;\n }\n const files = event.clipboardData.files;\n if (!files.length) {\n if (event.clipboardData.getData('text')) {\n this.scrollToSelectionWithElementScrollHeightAuto();\n }\n return;\n }\n event.preventDefault();\n await this.uploadImagesAndInsert(files);\n });\n }\n\n private handlerTextChange() {\n this.quill()?.on('text-change', (event) => {\n this.outTextChange.emit({\n quill: this.quill() as Quill,\n delta: event,\n });\n setTimeout(() => {\n if (event?.ops[1]?.insert === '\\n') {\n const range = { index: event?.ops[0].retain as number };\n const currentLeaf = this.quill()?.getLeaf(range.index)[0];\n const nextLeaf = this.quill()?.getLeaf(range.index + 1)[0];\n this.quill()?.insertEmbed(range.index, 'break', true, 'user');\n if (nextLeaf === null || currentLeaf.parent !== nextLeaf.parent) {\n this.quill()?.insertEmbed(range.index, 'break', true, 'user');\n }\n this.quill()?.setSelection((range.index || 0) + 1, 0, Quill.sources.SILENT);\n }\n });\n if (!this.autoUpdateValueWhenTextChange()) {\n return;\n }\n this.updateValueByRootQuillHtml();\n });\n }\n\n private updateValueByRootQuillHtml() {\n const html = this.removeUnwantedPart(this.quill()?.root.innerHTML || '');\n if (!this.quill()?.root.getElementsByTagName('img').length && !this.quill()?.getText()) {\n set<any>(this.item(), this.fieldNameBind(), '');\n this.validate();\n this.outChange.emit(get(this.item(), this.fieldNameBind()));\n return;\n }\n this.convertInnerHTMLAndSetValue(html);\n this.validate();\n this.outChange.emit(get(this.item(), this.fieldNameBind()));\n }\n\n protected handlerPopoverFunctionControl(event: IPopoverFunctionControlEvent) {\n this.popoverFunctionControl.set(event);\n }\n\n protected handlerPopoverEvent(event: TYPE_POPOVER_EVENT) {\n if (event === 'remove') {\n this.link.set(linkDefault());\n }\n }\n\n protected handlerUnlink(event: Event) {\n event.stopPropagation();\n const link = this.link();\n this.quill()?.formatText(link.range.index, link.range.length, { link: false });\n this.popoverFunctionControl()?.removePopoverOverlay();\n }\n\n protected handlerEdit(event: Event) {\n event.stopPropagation();\n const link = this.link();\n if (this.ignoreShowPopupEditLink()) {\n this.outShowPopupEditLink.emit({\n dataLink: link,\n callback: async (linkEdit: { title: string; link: string }) => {\n if (link instanceof Object && link.url) {\n this.quill()?.deleteText(link.range.index, link.range.length, Quill.sources.USER);\n this.quill()?.insertText(link.range.index, linkEdit.title, 'link', linkEdit.link);\n return;\n }\n this.insertLink(linkEdit.title, linkEdit.link);\n },\n });\n return;\n }\n this.handleShowUploadLink(link);\n this.popoverFunctionControl()?.removePopoverOverlay();\n }\n\n private async calculatorToolbar() {\n this.cdr.detectChanges();\n this.timeCalculationToolBar.set(\n setTimeout(() => {\n const toolbarWidth = this.toolbarItemsEl().nativeElement.offsetWidth || 0;\n let totalWidth = 32 + 28;\n this.toolbarOptionsConfig.update((configs) => {\n configs.forEach((item, index) => {\n item.display = true;\n totalWidth += item.width;\n if (item.type === 'line') {\n const nextItemWidth = totalWidth + this.toolbarOptionsConfig()[+index + 1].width;\n const preItem = this.toolbarOptionsConfig()[+index - 1];\n if (nextItemWidth > toolbarWidth && preItem.display === true) {\n item.display = undefined;\n return;\n }\n }\n if (totalWidth > toolbarWidth) {\n item.display = false;\n return;\n }\n });\n return [...configs];\n });\n this.cdr.detectChanges();\n }, 600)\n );\n }\n\n protected setStyle(type: string, data: string | number) {\n this.quill()?.format(type, data);\n }\n\n private getFontSize(format: StringMap) {\n const fontSize = format?.size?.toString()?.replace('px', '');\n if (isNaN(parseFloat(fontSize))) {\n this.size.set({ value: 14 });\n return;\n }\n this.size.set({ value: parseFloat(fontSize) });\n }\n\n private getFont(format: StringMap) {\n const font = listFont().find((item) => item.key === format.font);\n if (!font) {\n this.fontSelected.set({ key: '', item: listFont().find((item) => item.key === '') });\n return;\n }\n this.fontSelected.set({ key: format.font, item: font });\n }\n\n protected handleUndo() {\n this.quill()?.history?.undo();\n }\n\n protected handleRedo() {\n this.quill()?.history?.redo();\n }\n\n protected async setContent(content: string) {\n const contentXssFilter = await xssFilter(this.removeUnwantedPart(content || ''));\n await lastValueFrom(timer(1));\n (this.quill()?.root as HTMLElement).innerHTML = contentXssFilter;\n if (!this.autoFocus()) {\n return;\n }\n await lastValueFrom(timer(100));\n const target = this.quillEditorEl()?.nativeElement.querySelector('[contenteditable=\"true\"]');\n const contentScroll = this.heightAuto() ? this.wrapperEditorEl()?.nativeElement : target;\n contentScroll.scrollTop = contentScroll.scrollHeight;\n if (this.focusBottom()) {\n this.quill()?.setSelection(contentXssFilter.length, 0, Quill.sources.SILENT);\n return;\n }\n this.quill()?.setSelection(0, 0, Quill.sources.SILENT);\n }\n\n protected handlerAddEmoji(emoji: unknown) {\n this.insertText(emoji as string, undefined, true);\n }\n\n protected handleShowUploadLink(event: unknown) {\n this.addEditLinkComponentRef.set(this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsInputsQuillLinkComponent));\n const instance = this.addEditLinkComponentRef()?.instance;\n const selection = this.quill()?.getSelection();\n const textSelected = selection?.length ? this.quill()?.getText(selection?.index, selection?.length) : '';\n const data = event as IQuillLink | undefined;\n this.addEditLinkComponentRef()?.setInput('zIndex', this.zIndex());\n this.addEditLinkComponentRef()?.setInput('title', data?.title || textSelected);\n this.addEditLinkComponentRef()?.setInput('link', data?.url || '');\n this.addEditLinkComponentRef()?.setInput('ignoreCommunicateMicroEvent', this.ignoreCommunicateMicroEventPopup());\n instance?.outSaveLink.subscribe((item: { title: string; link: string }) => {\n if (data instanceof Object && data.url) {\n this.quill()?.deleteText(data.range.index, data.range.length, Quill.sources.USER);\n this.quill()?.insertText(data.range.index, item.title, 'link', item.link);\n return;\n }\n this.insertLink(item.title, item.link);\n });\n instance?.outClose.subscribe(() => this.dynamicComponentService.remove(this.addEditLinkComponentRef()));\n this.dynamicComponentService.addToBody(this.addEditLinkComponentRef());\n }\n\n protected handlerUnInsertLink() {\n const selection = this.quill()?.getSelection(true);\n if (!isNil(selection)) {\n this.quill()?.formatText(selection, 'link', false);\n }\n }\n\n protected async validate() {\n this.messageError.set('');\n const validRequired = this.validRequired();\n const item = this.item();\n const fieldNameBind = this.fieldNameBind();\n const value = get<any>(item, fieldNameBind);\n if (validRequired && validRequired.isRequired && (!fieldNameBind || !value || !value.trim())) {\n this.messageError.set(validRequired.message || ERROR_MESSAGE_EMPTY_VALID);\n this.outMessageError.emit(this.messageError());\n return false;\n }\n const validMinLength = this.validMinLength();\n if (validMinLength && fieldNameBind && value && value.trim().length < validMinLength.length) {\n this.messageError.set(validMinLength.message || ERROR_MESSAGE_MIN_LENGTH);\n this.outMessageError.emit(this.messageError());\n return false;\n }\n const validMaxLength = this.validMaxLength();\n if (validMaxLength && fieldNameBind && value && value.trim().length > this.validMaxLength.length) {\n this.messageError.set(validMaxLength.message || ERROR_MESSAGE_MAX_LENGTH);\n this.outMessageError.emit(this.messageError());\n return false;\n }\n this.outMessageError.emit(this.messageError());\n return true;\n }\n\n protected async insertImage(content: string, index?: number) {\n const selection = index ?? this.quill()?.getSelection(true).index;\n if (!isNil(selection)) {\n this.quill()?.insertEmbed(selection, 'image', content);\n this.quill()?.setSelection(selection + 1, 0);\n }\n }\n\n private async insertText(content: string, index?: number, focusLast?: boolean) {\n index = index ?? this.quill()?.getSelection(true).index;\n if (!isNil(index)) {\n this.quill()?.insertText(index, content, Quill.sources.USER);\n if (focusLast) {\n await lastValueFrom(timer(0));\n this.quill()?.setSelection(index + content.length, 0, Quill.sources.USER);\n }\n }\n }\n\n private async insertLink(text: string, url: string, index?: number) {\n const selection = this.quill()?.getSelection(true);\n const indexInsert = index ?? selection?.index;\n if (selection?.length) {\n this.quill()?.deleteText(selection.index, selection.length, Quill.sources.USER);\n }\n if (!isNil(indexInsert)) {\n this.quill()?.insertText(indexInsert, text, 'link', url);\n }\n }\n\n private convertInnerHTMLAndSetValue(html: string) {\n this.setStyleForContent();\n set<any>(this.item(), this.fieldNameBind(), html);\n }\n\n private setStyleForContent() {\n const styleArray = [\n { selector: '.ql-font-Arial', style: 'font-family: Arial' },\n { selector: '.ql-font-sans-serif', style: 'font-family: sans-serif' },\n { selector: '.ql-font-serif', style: 'font-family: serif' },\n { selector: '.ql-font-monospace', style: 'font-family: monospace' },\n { selector: '.ql-font-Helvetica', style: 'font-family: Helvetica' },\n { selector: '.libs-ui-quill-format-image', style: 'max-width: 100%; height: auto', overrideStyle: true },\n { selector: '.libs-ui-quill-mention', style: 'font-weight: 600;-moz-osx-font-smoothing: grayscale;-webkit-font-smoothing: antialiased; color: #7239EA', overrideStyle: true },\n { selector: 'blockquote', style: 'border-left: 4px solid #ccc; margin-bottom: 5px; margin-top: 5px; padding-left: 16px', overrideStyle: true },\n ];\n this.blotsRegister()?.forEach((item) => {\n styleArray.push({ selector: `.${item.className}`, style: item.style, overrideStyle: true });\n });\n styleArray.forEach((item) => {\n const elements = this.quill()?.root.querySelectorAll(item.selector);\n elements?.forEach((element) => {\n if (item.overrideStyle) {\n element.setAttribute('style', item.style);\n return;\n }\n // Fixbug issue: https://admin-cv.mobio.vn/issues/49092\n let styleExist = element.getAttribute('style');\n if (styleExist) {\n ['font-family: Arial', 'font-family: sans-serif', 'font-family: serif', 'font-family: monospace', 'font-family: Helvetica'].forEach((font) => {\n styleExist = (styleExist?.includes(`${font};`) ? styleExist?.replace(`${font};`, '') : styleExist?.replace(font, '')) as string;\n });\n }\n element.setAttribute('style', styleExist ? `${styleExist}${styleExist[styleExist.length - 1] === ';' ? '' : ';'}${item.style};` : item.style);\n });\n });\n }\n\n protected handleToggleMention(show: boolean) {\n this.showMention.set(show);\n }\n\n private handlerShowUploadImage() {\n if (this.uploadImageConfig().modeCustom) {\n this.uploadImageComponentRef.set(this.dynamicComponentService.resolveComponentFactory(LibsUiComponentsInputsQuillUploadImageComponent));\n const instance = this.uploadImageComponentRef()?.instance;\n this.uploadImageComponentRef()?.setInput('uploadImageConfig', this.uploadImageConfig());\n this.uploadImageComponentRef()?.setInput('ignoreCommunicateMicroEvent', this.ignoreCommunicateMicroEventPopup());\n instance?.outClose.subscribe((link: string | void) => {\n this.dynamicComponentService.remove(this.uploadImageComponentRef());\n if (link) {\n this.insertImage(link);\n }\n });\n this.dynamicComponentService.addToBody(this.uploadImageComponentRef());\n\n return;\n }\n\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('accept', 'image/*');\n input.click();\n input.onchange = async () => {\n await this.uploadImagesAndInsert(input?.files);\n };\n }\n\n private async uploadImagesAndInsert(files?: FileList | null) {\n if (!files) {\n return;\n }\n const maxImageSize = this.uploadImageConfig()?.maxImageSize || 5 * 1024 * 1024;\n const images = Array.from(files).filter((file) => file && file.type.split('/')[0] === 'image' && (!this.uploadImageConfig().maxImageSize || file.size <= maxImageSize));\n if (!images.length) {\n this.notificationService.showCompTypeTextWarning(this.translate.instant('i18n_note_upload_image_volume', { value: getLabelBySizeFile(maxImageSize) }), { timeRemove: 8000 });\n return;\n }\n try {\n this.loadingUploadImage.set(true);\n const indexInsert = this.quill()?.getSelection(true).index;\n const links = await this.uploadImageConfig().functionUploadImage?.(images);\n if (!links?.length) {\n return;\n }\n links.forEach((link) => {\n if (!link || (this.uploadImageConfig().onlyAcceptImageHttpsLink && (link instanceof ArrayBuffer || !new RegExp(patternUrl()).test(link)))) {\n return;\n }\n this.insertImage(link as string, indexInsert);\n });\n this.scrollToSelectionWithElementScrollHeightAuto(indexInsert);\n } catch (error) {\n console.error(error);\n } finally {\n this.loadingUploadImage.set(false);\n }\n return;\n }\n\n private insertMention(event: IMentionInsert) {\n const range = this.quill()?.getSelection();\n if (!range) {\n return;\n }\n const cursorPos = range.index;\n const startPosInsert = cursorPos - event.lengthKey;\n this.quill()?.deleteText(startPosInsert, event.lengthKey, Quill.sources.USER);\n this.quill()?.insertEmbed(startPosInsert, 'mention', event.data, Quill.sources.USER);\n this.insertText(' ', startPosInsert + 1);\n this.quill()?.setSelection(startPosInsert + 2, 0, Quill.sources.USER);\n }\n\n protected handlerInsertMention(data: IMentionInsert) {\n this.insertMention(data);\n }\n\n protected async setFontSize(size: number) {\n this.quill()?.format('size', `${size}px`);\n }\n\n protected handlerValueChange(value: number | string) {\n this.size.update((item) => ({ ...item, value: value as number }));\n this.quill()?.format('size', `${this.size().value}px`);\n }\n\n protected handleSelectAlign(event: IEmitSelectKey | undefined) {\n this.alignSelected.set(event);\n this.setStyle('align', event?.key as string);\n }\n\n protected handleSelectFont(event: IEmitSelectKey | undefined) {\n this.fontSelected.set(event);\n this.setStyle('font', event?.key as string);\n }\n\n protected handlerChangeShowMoreAction(event: Event) {\n event.stopPropagation();\n this.showMoreAction.update((item) => !item);\n }\n\n private scrollToSelectionWithElementScrollHeightAuto(index?: number) {\n clearTimeout(this.timeoutScrollToSelectionWithElementScrollHeightAuto());\n if (!this.elementScrollHeightAuto()) {\n return;\n }\n this.timeoutScrollToSelectionWithElementScrollHeightAuto.set(\n setTimeout(() => {\n index = index ?? this.quill()?.getSelection(true).index;\n if (!isNil(index)) {\n const bounds = this.quill()?.getBounds(index, 1);\n this.elementScrollHeightAuto()?.scrollTo(0, (bounds?.top || 0) - 20);\n }\n }, 100)\n );\n }\n\n private getQlEditorElement() {\n if (this.qlEditorElement()) {\n return this.qlEditorElement();\n }\n for (const elementNode of this.quillEditorEl().nativeElement.getElementsByClassName('ql-editor')) {\n this.qlEditorElement.set(elementNode as HTMLElement);\n break;\n }\n return this.qlEditorElement();\n }\n\n private removeUnwantedPart(html: string) {\n if (!html) {\n return '';\n }\n return html\n .replace(/^\\s*<p><br><\\/p>/, '')\n .replace(/<div><br><\\/div>/gi, '')\n .replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\n }\n\n protected handleSelectHeader(event: IEmitSelectKey | undefined) {\n this.headerSelected.set(event);\n this.setStyle('header', event?.key as string);\n }\n\n ngOnDestroy(): void {\n this.onDestroy.next();\n this.onDestroy.complete();\n this.dynamicComponentService.remove(this.addEditLinkComponentRef());\n this.dynamicComponentService.remove(this.uploadImageComponentRef());\n clearTimeout(this.timeCalculationToolBar());\n clearTimeout(this.timeoutScrollToSelectionWithElementScrollHeightAuto());\n }\n}\n","<div class=\"flex flex-col w-full h-full\">\n @if (label(); as label) {\n <libs_ui-components-label\n [classInclude]=\"label.classInclude\"\n [required]=\"label.required\"\n [labelLeft]=\"label.labelLeft\" />\n }\n <div\n #wrapperEditor\n [attr.heightAuto]=\"heightAuto()\"\n [attr.isToolbarPositionFixed]=\"isToolbarPositionFixed()\"\n class=\"libs-ui-quill-wrapper w-full h-full relative flex flex-col\"\n [class.libs-ui-border-error-general]=\"messageError() && showErrorBorder() && !onlyShowErrorBorderInContent()\"\n [class.rounded-[4px]]=\"messageError() && showErrorBorder() && !onlyShowErrorBorderInContent()\">\n <div\n #editor\n class=\"libs-ui-quill\"\n [attr.showError]=\"messageError() && showErrorBorder() && onlyShowErrorBorderInContent()\"\n [class.!hidden]=\"!display()\">\n <div\n #quillOption\n [class.!top-[-9999px]]=\"!isShowToolBar()\"\n [class.!left-[-9999px]]=\"!isShowToolBar()\"\n [style]=\"stylesIncludeToolbar()\"\n [class.pointer-events-none]=\"readonly() || loadingUploadImage()\"\n class=\"{{ isToolbarPositionFixed() ? 'fixed !z-10 w-[510px] shadow-[0px_4px_16px_0px_rgba(0,20,51,0.10)] rounded-[4px] bg-[#ffffff] libs-ui-quill-toolbar-animation' : '' }} {{ classIncludeToolbar() }} h-[44px] shrink-0\"\n [class.bg-[#f8f9fa]]=\"!readonly() && !loadingUploadImage()\"\n [class.libs-ui-readonly-background]=\"readonly() || loadingUploadImage()\">\n <ng-container *ngTemplateOutlet=\"toolbar\"></ng-container>\n </div>\n <div\n #quillEditor\n LibsUiComponentsInputsMentionDirective\n [timeDelayInit]=\"timeDelayInit() + 50\"\n [mentionConfig]=\"dataConfigMention()\"\n [class.libs-ui-readonly-background]=\"readonly() || loadingUploadImage()\"\n [class.pointer-events-none]=\"loadingUploadImage()\"\n (outToggle)=\"handleToggleMention($event)\"\n (outInsertMention)=\"handlerInsertMention($event)\"></div>\n <ng-container\n #qlEditorScroll\n LibsUiComponentsScrollOverlayDirective\n [ignoreInit]=\"!qlEditorElement()\"\n [elementScroll]=\"qlEditorElement()\" />\n </div>\n @if (template(); as template) {\n <div [class]=\"classIncludeTemplate()\">\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n </div>\n }\n @if (loadingUploadImage()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n </div>\n @if (messageError() && showErrorLabel()) {\n <div class=\"flex items-center leading-normal mt-[8px]\">\n <span class=\"text-[#ff5454] libs-ui-font-h7r\">{{ messageError() | translate }}</span>\n </div>\n }\n</div>\n\n<ng-template #toolbar>\n <div\n class=\"toolbar h-full w-full shrink-0\"\n #toolbarItems>\n @if (displaySkeleton()) {\n <libs_ui-components-skeleton\n class=\"w-full h-full\"\n [config]=\"{\n rows: [\n {\n item: { classIncludeItem: '!rounded-none' },\n },\n ],\n }\" />\n }\n <div class=\"ql-formats items-center px-[16px] py-[4px]\">\n @for (option of toolbarOptionsConfig(); track option) {\n <div\n class=\"items-center\"\n [class.hidden]=\"!option.display\"\n [class.flex]=\"option.display\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { option, $index, $last }\"></ng-container>\n </div>\n }\n <div class=\"relative\">\n @if (displayShowMoreToolbar()) {\n <libs_ui-components-buttons-button\n [type]=\"showMoreAction() ? 'button-secondary' : 'button-third'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[1px] !h-[20px] ml-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-move-right rotate-90'\"\n (outClick)=\"handlerChangeShowMoreAction($event)\" />\n }\n <!-- Build toolbar khi click xem thêm-->\n <div\n [class.hidden]=\"!showMoreAction()\"\n class=\"absolute bg-[#ffffff] shadow-[0px_4px_16px_0px_rgba(0,20,51,0.10)] z-[1] flex items-center pl-[8px] pr-[16px] py-[4px] rounded-[8px] top-[31px] right-[0px]\">\n @for (option of toolbarOptionsConfig(); track option) {\n <div\n class=\"items-center\"\n [class.hidden]=\"option.display !== false\"\n [class.flex]=\"option.display === false\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { option, $index, $last }\"></ng-container>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n</ng-template>\n\n<ng-template\n #itemTemplate\n let-$index=\"$index\"\n let-$last=\"$last\"\n let-option=\"option\">\n @if (option.type === 'undo') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_undo', zIndex: zIndex() }\"\n class=\"ql-undo\"></button>\n </div>\n }\n @if (option.type === 'redo') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_redo', zIndex: zIndex() }\"\n class=\"ql-redo\"></button>\n </div>\n }\n @if (option.type === 'fontFamily') {\n <div\n class=\"relative w-[132px] h-full rounded-[4px] libs-ui-border-general {{ option.classInclude || 'mx-[8px]' }}\"\n [class.bg-white]=\"!readonly() && !loadingUploadImage()\">\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [labelPopoverFullWidth]=\"true\"\n [listConfig]=\"listConfigFont()\"\n [listHasButtonUnSelectOption]=\"false\"\n [listHiddenInputSearch]=\"true\"\n [listMaxItemShow]=\"8\"\n [zIndex]=\"1250\"\n (outSelectKey)=\"handleSelectFont($event)\">\n @if (fontSelected(); as fontSelected) {\n <div class=\"flex items-center cursor-pointer py-[7px] libs-ui-font-h5r pl-[16px] pr-[40px]\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [ignoreStopPropagationEvent]=\"true\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ labelFontSelectedComputed() }}\n </libs_ui-components-popover>\n <i class=\"libs-ui-icon-move-right rotate-90 absolute right-[12px] text-[#6a7383] text-[16px]\"></i>\n </div>\n }\n </libs_ui-components-dropdown>\n </div>\n }\n @if (option.type === 'header') {\n <div\n class=\"relative w-[138px] h-full rounded-[4px] libs-ui-border-general {{ option.classInclude || 'mx-[8px]' }}\"\n [class.bg-white]=\"!readonly() && !loadingUploadImage()\">\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [labelPopoverFullWidth]=\"true\"\n [listConfig]=\"listConfigHeader()\"\n [listHasButtonUnSelectOption]=\"false\"\n [listHiddenInputSearch]=\"true\"\n [listMaxItemShow]=\"8\"\n [zIndex]=\"1250\"\n (outSelectKey)=\"handleSelectHeader($event)\">\n @if (headerSelected(); as headerSelected) {\n <div class=\"flex items-center cursor-pointer py-[7px] libs-ui-font-h5r pl-[16px] pr-[40px] {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [ignoreStopPropagationEvent]=\"true\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ labelHeaderSelectedComputed() }}\n </libs_ui-components-popover>\n <i class=\"libs-ui-icon-move-right rotate-90 absolute right-[12px] text-[#6a7383] text-[16px]\"></i>\n </div>\n }\n </libs_ui-components-dropdown>\n </div>\n }\n @if (option.type === 'fontSize') {\n <div class=\"ql-picker {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-inputs-valid\n [dataType]=\"'int'\"\n [(item)]=\"size\"\n [fieldNameBind]=\"'value'\"\n [valueUpDownNumber]=\"1\"\n [maxValueNumber]=\"72\"\n [minValueNumber]=\"8\"\n [readonly]=\"readonly() || loadingUploadImage()\"\n [classContainerInput]=\"'w-[72px] h-[32px]'\"\n (outValueChange)=\"handlerValueChange($event)\" />\n </div>\n }\n @if (option.type === 'color') {\n <div class=\"ql-color ql-picker ql-color-picker !flex items-center {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-popover [config]=\"{ content: 'i18n_text_color', zIndex: zIndex() }\">\n <libs_ui-components-buttons-select_color\n [zIndex]=\"zIndex()\"\n [direction]=\"'top'\"\n [externalContent]=\"true\"\n [customOptions]=\"{\n showAlpha: true,\n }\"\n [applyNow]=\"false\"\n (outColorChange)=\"setStyle('color', $event)\">\n <div class=\"libs-ui-icon-editor-color-text libs-ui-buttons-select-color text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]\"></div>\n </libs_ui-components-buttons-select_color>\n </libs_ui-components-popover>\n </div>\n }\n @if (option.type === 'background') {\n <div class=\"ql-background ql-picker ql-color-picker !flex items-center {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-popover [config]=\"{ content: 'i18n_background_color', zIndex: zIndex() }\">\n <libs_ui-components-buttons-select_color\n [zIndex]=\"zIndex()\"\n [direction]=\"'top'\"\n [externalContent]=\"true\"\n [applyNow]=\"false\"\n [customOptions]=\"{\n showAlpha: true,\n }\"\n (outColorChange)=\"setStyle('background', $event)\">\n <div class=\"libs-ui-icon-editor-color-background libs-ui-buttons-select-color text-[#6a7383] text-[16px] hover:text-[var(--libs-ui-color-light-1)]\"></div>\n </libs_ui-components-buttons-select_color>\n </libs_ui-components-popover>\n </div>\n }\n @if (option.type === 'bold') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_font_weight_bold', zIndex: zIndex() }\"\n class=\"ql-bold\"></button>\n </div>\n }\n @if (option.type === 'italic') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_font_style_italic', zIndex: zIndex() }\"\n class=\"ql-italic\"></button>\n </div>\n }\n @if (option.type === 'underline') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_text_decoration_underline', zIndex: zIndex() }\"\n class=\"ql-underline\"></button>\n </div>\n }\n @if (option.type === 'strikeThrough') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_text_line_through', zIndex: zIndex() }\"\n class=\"ql-strike\"></button>\n </div>\n }\n @if (option.type === 'adjust') {\n <div class=\"relative !flex items-center ql-align ql-picker ql-icon-picker !w-max {{ option.classInclude || 'mx-[8px]' }}\">\n <libs_ui-components-popover [config]=\"{ content: 'i18n_adjust', zIndex: zIndex() }\">\n <libs_ui-components-dropdown\n [isNgContent]=\"true\"\n [ignoreStopPropagationEvent]=\"true\"\n [labelPopoverFullWidth]=\"true\"\n [listConfig]=\"listConfigAlign()\"\n [listHiddenInputSearch]=\"true\"\n [popoverCustomConfig]=\"{ ignoreArrow: true, classInclude: '!w-[32px] overflow-hidden !py-[4px]', position: { mode: 'start', distance: 0 }, paddingLeftItem: false }\"\n [listHasButtonUnSelectOption]=\"false\"\n [listMaxItemShow]=\"8\"\n [zIndex]=\"1250\"\n (outSelectKey)=\"handleSelectAlign($event)\">\n @if (alignSelected(); as alignSelected) {\n <div class=\"flex items-center cursor-pointer\">\n <i [class]=\"iconAlignSelectedComputed()\"></i>\n <i class=\"libs-ui-icon-move-right rotate-90 text-[#6a7383] text-[16px] ml-[4px]\"></i>\n </div>\n }\n </libs_ui-components-dropdown>\n </libs_ui-components-popover>\n </div>\n }\n @if (option.type === 'indentIncrease') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_indent_increase', zIndex: zIndex() }\"\n class=\"ql-indent\"\n value=\"+1\"></button>\n </div>\n }\n @if (option.type === 'indentDecrease') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_indent_decrease', zIndex: zIndex() }\"\n class=\"ql-indent\"\n value=\"-1\"></button>\n </div>\n }\n @if (option.type === 'listBulleted') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_list_bulleted', zIndex: zIndex() }\"\n class=\"ql-list ql-bullet\"\n value=\"bullet\"></button>\n </div>\n }\n @if (option.type === 'listNumbered') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_list_numbered', zIndex: zIndex() }\"\n class=\"ql-list ql-ordered\"\n value=\"ordered\"></button>\n </div>\n }\n @if (option.type === 'personalize' && templateToolBarPersonalize(); as templateToolBarPersonalize) {\n <div class=\"flex items-center {{ option.classInclude || 'mx-[8px]' }}\">\n <ng-container *ngTemplateOutlet=\"templateToolBarPersonalize\"></ng-container>\n </div>\n }\n @if (option.type === 'blockquote') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_quote', zIndex: zIndex() }\"\n class=\"ql-blockquote\"></button>\n </div>\n }\n @if (option.type === 'link') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_insert_link', zIndex: zIndex() }\"\n class=\"ql-link\"></button>\n </div>\n }\n @if (option.type === 'unLink') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_unlink', zIndex: zIndex() }\"\n class=\"ql-unLink\"></button>\n </div>\n }\n @if (option.type === 'image') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <button\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: 'i18n_image', zIndex: zIndex() }\"\n class=\"ql-image\"></button>\n </div>\n }\n @if (option.type === 'emoji') {\n <div [class]=\"option.classInclude || 'mx-[8px]'\">\n <libs_ui-components-emoji\n [zIndex]=\"zIndex()\"\n [isNgContent]=\"true\"\n (outEventEmoji)=\"handlerAddEmoji($event)\">\n <button class=\"ql-emoji\"></button>\n </libs_ui-components-emoji>\n </div>\n }\n @if (option.type === 'line') {\n <div class=\"w-[1px] h-[16px] libs-ui-border-right-general\"></div>\n }\n</ng-template>\n\n<libs_ui-components-popover\n [mode]=\"'click'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{ template: viewLink, whiteTheme: true, ignoreArrow: true, zIndex: zIndex() }\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerPopoverFunctionControl($event)\" />\n\n<ng-template #viewLink>\n <div class=\"flex justify-between items-center px-[16px] py-[8px] rounded-[8px]\">\n <div\n class=\"w-full min-w-0 libs-ui-font-h5r\"\n [type]=\"'text'\"\n LibsUiComponentsPopoverDirective\n [config]=\"{ content: link().url, zIndex: zIndex() + 1 }\">\n {{ link().url }}\n </div>\n <div class=\"flex items-center ml-[16px]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-primary'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-edit-line'\"\n [classInclude]=\"'!p-0'\"\n (outClick)=\"handlerEdit($event)\" />\n <libs_ui-components-buttons-button\n [type]=\"'button-link-custom'\"\n [buttonCustom]=\"{\n configStepColor: {\n text: '#071631',\n text_hover: '#ee2d41',\n text_active: '#ee2d41',\n text_disable: '071631',\n },\n rootColor: '#071631',\n }\"\n [classInclude]=\"'!p-0 ml-[12px]'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-link-broken'\"\n (outClick)=\"handlerUnlink($event)\" />\n </div>\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,30 +1,30 @@
1
1
  {
2
2
  "name": "@libs-ui/components-inputs-quill",
3
- "version": "0.2.319-0",
3
+ "version": "0.2.321-0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18.0.0",
6
6
  "@angular/core": ">=18.0.0",
7
7
  "quill": "1.3.7",
8
8
  "parchment": "1.1.4",
9
- "@libs-ui/components-label": "0.2.319-0",
9
+ "@libs-ui/components-label": "0.2.321-0",
10
10
  "quill-delta": "5.1.0",
11
- "@libs-ui/components-inputs-valid": "0.2.319-0",
12
- "@libs-ui/components-modal": "0.2.319-0",
13
- "@libs-ui/utils": "0.2.319-0",
14
- "@libs-ui/components-buttons-button": "0.2.319-0",
15
- "@libs-ui/components-buttons-select-color": "0.2.319-0",
16
- "@libs-ui/components-dropdown": "0.2.319-0",
17
- "@libs-ui/components-inputs-emoji": "0.2.319-0",
18
- "@libs-ui/components-inputs-mention": "0.2.319-0",
19
- "@libs-ui/components-list": "0.2.319-0",
20
- "@libs-ui/components-popover": "0.2.319-0",
21
- "@libs-ui/interfaces-types": "0.2.319-0",
22
- "@libs-ui/services-dynamic-component": "0.2.319-0",
11
+ "@libs-ui/components-inputs-valid": "0.2.321-0",
12
+ "@libs-ui/components-modal": "0.2.321-0",
13
+ "@libs-ui/utils": "0.2.321-0",
14
+ "@libs-ui/components-buttons-button": "0.2.321-0",
15
+ "@libs-ui/components-buttons-select-color": "0.2.321-0",
16
+ "@libs-ui/components-dropdown": "0.2.321-0",
17
+ "@libs-ui/components-inputs-emoji": "0.2.321-0",
18
+ "@libs-ui/components-inputs-mention": "0.2.321-0",
19
+ "@libs-ui/components-list": "0.2.321-0",
20
+ "@libs-ui/components-popover": "0.2.321-0",
21
+ "@libs-ui/interfaces-types": "0.2.321-0",
22
+ "@libs-ui/services-dynamic-component": "0.2.321-0",
23
23
  "@ngx-translate/core": "^15.0.0",
24
24
  "rxjs": "~7.8.0",
25
- "@libs-ui/components-spinner": "0.2.319-0",
26
- "@libs-ui/services-notification": "0.2.319-0",
27
- "@libs-ui/services-http-request": "0.2.319-0"
25
+ "@libs-ui/components-spinner": "0.2.321-0",
26
+ "@libs-ui/services-notification": "0.2.321-0",
27
+ "@libs-ui/services-http-request": "0.2.321-0"
28
28
  },
29
29
  "sideEffects": false,
30
30
  "module": "fesm2022/libs-ui-components-inputs-quill.mjs",