DocX-button Plugin

Demo version

Plugin Options Interface

export interface PluginOptions {
    selector?: string;
    settings?: {
        debuggingMode?: boolean;
        documentId: string;
        beforeDocxButtonClick?: () => Promise<boolean>; // calback for check data before button press click event, return false to brake
        data?: any; // - data if absent will use getData()
        getData?: () => any; // - use if data is undefined
        defaultDocxTemplates?: Array<{
            templateId: string;
            templateName: string; // - name for user interface
            url: string; // - url for download template
            getFileName?: () => string; // - function for generate created docx file name
        }>;

        initDefTemplateList?: string[]; // use only if user don't setup new value
    };
}

Example

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <!-- load plugin style -->
        <link href="http://dev.wedat.eu/docx-button/plugin.css" rel="stylesheet" />
    </head>
    <body>
        <!-- this place where plugin will render -->
        <div class="plugin"></div>

        <!-- load plugin JS synchronously -->
        <script src="http://dev.wedat.eu/docx-button/plugin.js"></script>

        <!-- init plugin options on your JS file or inline JS like this -->
        <script>
            document.addEventListener('DOMContentLoaded', () => {
                window.DOCX_BUTTON.init({
                    selector: '.plugin',
                    settings: {
                        debuggingMode: true,
                        documentId: 'documentID-exemple',
                        data: {
                            firstName: 'Petr',
                            secondName: 'Ivanov',
                            isDrink: true,
                            food: [
                                {
                                    number: 1,
                                    name: 'Potato'
                                },
                                {
                                    number: 2,
                                    name: 'Tomato'
                                }
                            ]
                        },
                        defaultDocxTemplates: [
                            {
                                templateId: 'id2',
                                templateName: 'Uaser food',
                                url: './gererateDocTemplate.test.docx',
                                getFileName: () => 'user_food'
                            }
                        ],
                        initDefTemplateList: ['id2'] // use only if user don't setup new value
                    }
                });
            });
        </script>
    </body>
</html>